gpt4 book ai didi

ruby - shift_age 'w' 的 Ruby 记录器有什么作用?

转载 作者:太空宇宙 更新时间:2023-11-03 16:46:32 30 4
gpt4 key购买 nike

看起来像这样的 Ruby 记录器有什么作用?

logger = Logger.new('foo.log', 'w')

我能在文档上找到的最接近的东西是

logger = Logger.new('foo.log', 'weekly')

或者只写?

file = File.open('foo.log', File::WRONLY | File::APPEND)

我假设这意味着每周?

最佳答案

TL;DR - 'w' 在创建新的 Logger 对象时本身没有任何意义。但是 'weekly' 是一个可行的论点。

我不确定您的初始示例是从哪里得到的。但是,根据文档,Logger::new 的第二个(可选)参数是 shift_age:

Number of old log files to keep, or frequency of rotation (daily, weekly or monthly).

除上述选项之外的任何选项仍将创建一个成功的日志对象。 (1.9.3测试)

[1] pry(main)> logger = Logger.new('foo.log', 'nothing')
=> #<Logger:0x00000001023590
@default_formatter=#<Logger::Formatter:0x00000001023540 @datetime_format=nil>,
@formatter=nil,
@level=0,
@logdev=
#<Logger::LogDevice:0x000000010234a0
@dev=#<File:foo.log>,
@filename="foo.log",
@mutex=#<Logger::LogDevice::LogDeviceMutex:0x00000001023450 @mon_count=0, @mon_mutex=#<Mutex:0x00000001023388>, @mon_owner=nil>,
@shift_age="nothing",
@shift_size=1048576>,
@progname=nil>

知道这一点,'w' 本身在创建新记录器时并不意味着只写。仅仅因为记录器可能写入文件,所以记录器和文件仍然是两个不同的对象。

More information on HOW TO create a logger

关于ruby - shift_age 'w' 的 Ruby 记录器有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31734243/

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