log rotate
Shifting failed. '/foo/log/production.log.20090101' already exists.
というエラーが出てる。どうもloggerのlog rotateがうまく行っていない様子。
複数のプロセスが動いていることが原因?
config/initializers/logger.rb
ファイルを作って、Loggerを修正。
ログの取りこぼしがないかどうかは、未確認。
### Logger # Original code is at /usr/lib/ruby/1.8/logger.rb class Logger private class LogDevice def write(message) # FileUtils.touch('/tmp/logger.test.1.'+File.basename(@filename)) # debug code : monitor method call @mutex.synchronize do if @shift_age and @dev.respond_to?(:stat) begin check_shift_log rescue # origianl code # raise Logger::ShiftingError.new("Shifting failed. #{$!}") # original code # added (3 lines + 1 debug line) close @dev = open_logfile(@filename) @dev.sync = true # FileUtils.touch('/tmp/logger.test.2.'+File.basename(@filename)) # debug code : monitor rescue event end end @dev.write(message) end end end end