gpt4 book ai didi

ruby - 不要附加但覆盖记录器的日志文件

转载 作者:数据小太阳 更新时间:2023-10-29 07:46:28 25 4
gpt4 key购买 nike

我在我的应用程序中使用记录器并将输出定向到这样的文件:

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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com