Rails loggerがローテーションしない


Ruby 2.2.2、Rails 4.2.1 にて以下のやり方でログを出力しています。

config/development.rb

[code]

    config.logger = Logger.new('log/my.log', 'daily')
    config.log_formatter = Logger::Formatter.new
    
[/code]

ログ出力コード

[code]

    Rails.logger.info "hogehoge"
    
[/code]

ログは出力されるのですが、日をまたいでも初めのmy.logに追記されていき、ローテーションされません。開発しながらなので、サーバーは常時起動ではなく、止めたり、起動したりしています。

バッチ的な処理をrailsで書いていて、cronで定期的にURLにアクセスして、処理をして終わるということをしています。

処理は複数スレッドで内部で並列化しています。（常駐スレッドはなし）

テスト環境の別サーバーは常時稼働していますが、同様に初めのファイルに追記されローテーションされません。

ためしに、 dailyをやめて、

[code]

    config.logger = Logger.new('log/my.log', 5, 1 * 1024)
    
[/code]

のようにサイズ指定にしてみましたが、やはりローテーションされず、かつ今度はログ出力がとても遅くなり、全体的に処理が重くなっているように見えます。

できれば、dailyでログを回したいのですが、どなたか参考情報などありますでしょうか？

Logger自体スレッドセーフだと思ったのですが、マルチスレッド処理が弊害を起こしていますかね？




dailyを指定するとローテートしないのは、Ruby 2.2以降のLoggerのバグだったようです。  
修正パッチが登録されていました。

<https://github.com/ruby/ruby/commit/f6e77b9d3555c1fbaa8aab1cdc0bd6bde95f62c6>

bugs.ruby-lang.org の Bug #12948 と、リビジョン 56815 の変更です。

私の手元の環境(ruby 2.2.1p85, Rails 4.2.1)で同様の現象が起きていましたが、  
上記の修正を行った所、dailyでローテートするようになりました。




dailyを指定するとローテートしないのは、Ruby 2.2以降のLoggerのバグだったようです。  
修正パッチが登録されていました。

<https://github.com/ruby/ruby/commit/f6e77b9d3555c1fbaa8aab1cdc0bd6bde95f62c6>

bugs.ruby-lang.org の Bug #12948 と、リビジョン 56815 の変更です。

私の手元の環境(ruby 2.2.1p85, Rails 4.2.1)で同様の現象が起きていましたが、  
上記の修正を行った所、dailyでローテートするようになりました。

