我在我的应用程序中使用记录器并将输出定向到这样的文件:
Logger.new("nemobuild.log")
我的记录器在创建后附加到这个日志文件。
我想要它做的是在每次程序启动时清除日志文件。
示例中是创建新日志文件的说明:
file = File.open('foo.log', File::WRONLY | File::APPEND | File::CREAT)
我必须使用哪些 File::
参数才能获得所需的行为?
最佳答案
您使用哪种 gem ?你能提供 MWE 吗?
与 Logger.new("nemobuild.log")
我得到错误:
`<main>': uninitialized constant Logger (NameError)
您使用标准的 Logger 吗?
然后您可以使用文件对象代替日志文件的文件名:
require 'logger'
log = Logger.new(File.new("nemobuild.log",'w'))
log.error('XX')
如果你想回到追加模式,你可以将 w
选项(写入)切换为 a
(追加):
log = Logger.new(File.new("nemobuild.log",'a'))
假设您可以/想要使用 log4r :
您需要的功能是 FileOutputter 的选项 trunc
:
require 'log4r'
log = Log4r::Logger.new('log')
log.outputters << Log4r::FileOutputter.new(
'log_file', :filename => 'mini_example.log',
:trunc => true, #Delete old log
)
关于ruby - 不要附加但覆盖记录器的日志文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20704045/