From: nobu@... Date: 2015-10-27T03:43:38+00:00 Subject: [ruby-dev:49314] [Ruby trunk - Bug #11622] [Assigned] Logger weekly rotation should rename old logs as "Saturday" Issue #11622 has been reported by Nobuyoshi Nakada. ---------------------------------------- Bug #11622: Logger weekly rotation should rename old logs as "Saturday" https://bugs.ruby-lang.org/issues/11622 * Author: Nobuyoshi Nakada * Status: Assigned * Priority: Normal * Assignee: Hiroshi Nakamura * ruby -v: * Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN ---------------------------------------- logger.rbで weekly rotation を指定したとき、日曜日での書き込みでログファイルが切り替えられますが、古いログファイル名に着く日付が前週の金曜日のものになっていますが、土曜日のものになるべきではないでしょうか。 以下のコードを実行すると、一回目の書き込み(`"2015-12-19 12:34:56 UTC hello-1"`)は log.20151218 に入っていて、最後に書き込まれた時刻よりも古いファイル名になっています。 ~~~ruby 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-------------------------------- 0001-logger.rb-end-of-week-should-be-Saturday.patch (2.8 KB) -- https://bugs.ruby-lang.org/