我在我的应用程序中使用logger并将输出定向到这样的文件:
Logger.new("nemobuild.log")
我的记录器在创建后附加到此日志文件。
我想要它做的是清除每个程序启动时的日志文件。
在示例中是有关创建新日志文件的说明:
file = File.open('foo.log', File::WRONLY | File::APPEND | File::CREAT)
我必须使用哪些File::
参数才能获得理想的行为?
答案 0 :(得分:5)
你使用哪种宝石?你能提供MWE吗?
使用 Logger.new( “nemobuild.log”)
我收到错误:
`<main>': uninitialized constant Logger (NameError)
您使用标准记录器吗?
然后您可以使用文件对象而不是日志文件的文件名:
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
)
答案 1 :(得分:3)
我在设置记录器之前最终删除了文件:
File.delete("nemobuild.log")
logger = Logger.new("nemobuild.log")