Rails4でtd-loggerが動かない原因

ログ収集処理をfluentdに統一しようと思ってbundleでtd-loggerを入れてみたのだが、Rail4のサーバが起動し無くなった。

エラーメッセージは下記。

/home/ahinore/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/railties-4.0.0/lib/rails.rb:32:in `configuration': undefined method `config' for nil:NilClass (NoMethodError)

        from /home/ahinore/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/td-logger-0.3.21/lib/td/logger/agent/rails.rb:50:in `<module:Rails>'

        from /home/ahinore/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/td-logger-0.3.21/lib/td/logger/agent/rails.rb:3:in `<module:Logger>'

        from /home/ahinore/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/td-logger-0.3.21/lib/td/logger/agent/rails.rb:2:in `<module:TreasureData>'

        from /home/ahinore/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/td-logger-0.3.21/lib/td/logger/agent/rails.rb:1:in `<top (required)>'

        from /home/ahinore/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/td-logger-0.3.21/lib/td/logger.rb:98:in `require'

        from /home/ahinore/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/td-logger-0.3.21/lib/td/logger.rb:98:in `<module:Agent>'

        from /home/ahinore/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/td-logger-0.3.21/lib/td/logger.rb:96:in `<top (required)>'

        from /home/ahinore/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/td-logger-0.3.21/lib/td-logger.rb:1:in `require'

        from /home/ahinore/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/td-logger-0.3.21/lib/td-logger.rb:1:in `<top (required)>'

 

td-loggerの 周辺のソースを読んでみた所、どうも「td-logger-0.3.21/lib/td/logger/agent/rails.rb:43」の所で、初期化方法がRailsのバージョン3とそれ以外で切り替えているのだが、Rail4はそれ以外に含まれてしまっている模様。

下記のようにRails4も3と同じ初期化方法になる様に修正してみた所、うまく動くようになった。

- if ::Rails.respond_to?(:version) && ::Rails.version =~ /^3/

+ if ::Rails.respond_to?(:version) && ::Rails.version =~ /^[34]/

めでたしめでたし。