Actions
Bug #11622
closedLogger weekly rotation should rename old logs as "Saturday"
Description
logger.rbで weekly rotation を指定したとき、日曜日での書き込みでログファイルが切り替えられますが、古いログファイル名に着く日付が前週の金曜日のものになっていますが、土曜日のものになるべきではないでしょうか。
以下のコードを実行すると、一回目の書き込み("2015-12-19 12:34:56 UTC hello-1"
)は log.20151218 に入っていて、最後に書き込まれた時刻よりも古いファイル名になっています。
module FakeTime
attr_accessor :now
end
class << Time
prepend FakeTime
end
log = "log"
File.open(log, "w") {}
Time.now = Time.utc(2015, 12, 14, 0, 1, 1)
dev = Logger::LogDevice.new("log", shift_age: 'weekly')
Time.now = Time.utc(2015, 12, 19, 12, 34, 56)
dev.write("#{Time.now} hello-1\n")
File.utime(Time.now, Time.now, log)
Time.now = Time.utc(2015, 12, 20, 0, 1, 1)
File.utime(Time.now, Time.now, log)
dev.write("#{Time.now} hello-2\n")
Files
Updated by nobu (Nobuyoshi Nakada) over 8 years ago
- Status changed from Assigned to Closed
Applied in changeset r52297.
logger.rb: end of week should be Saturday
- lib/logger.rb (Logger::Period#previous_period_end): as weekly
rotation shifts the log file on Sundays, the end date of the
previous period should be Saturdays. fix r45072.
[ruby-dev:49314] [Bug #11622]
Actions
Like0
Like0