Project

General

Profile

Actions

Bug #11622

closed

Logger weekly rotation should rename old logs as "Saturday"

Added by nobu (Nobuyoshi Nakada) over 8 years ago. Updated over 8 years ago.

Status:
Closed
Target version:
-
[ruby-dev:49314]

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

Actions #1

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

Also available in: Atom PDF

Like0
Like0