Rails loggerがローテーションしない
Ruby 2.2.2、Rails 4.2.1 にて以下のやり方でログを出力しています。
config/development.rb
config.logger = Logger.new('log/my.log', 'daily')
config.log_formatter = Logger::Formatter.new
ログ出力コード
Rails.logger.info "hogehoge"
ログは出力されるのですが、日をまたいでも初めのmy.logに追記されていき、ローテーションされません。開発しながらなので、サーバーは常時起動ではなく、止めたり、起動したりしています。
バッチ的な処理をrailsで書いていて、cronで定期的にURLにアクセスして、処理をして終わるということをしています。
処理は複数スレッドで内部で並列化しています。(常駐スレッドはなし)
テスト環境の別サーバーは常時稼働していますが、同様に初めのファイルに追記されローテーションされません。
ためしに、 dailyをやめて、
config.logger = Logger.new('log/my.log', 5, 1 * 1024)
のようにサイズ指定にしてみましたが、やはりローテーションされず、かつ今度はログ出力がとても遅くなり、全体的に処理が重くなっているように見えます。
できれば、dailyでログを回したいのですが、どなたか参考情報などありますでしょうか?
Logger自体スレッドセーフだと思ったのですが、マルチスレッド処理が弊害を起こしていますかね?