Railsが自動で出すログ

StackDriverのgemを入れたらRails.loggerでlog/以下に出力できなくなってしまって調べたのでメモ。

StackDriverを利用するとCloudLogging用のLoggerにRails.loggerが差し変わります。

1
Rails.logger.info('hogehoge')

とやってもRAILS_ROOT/log/production.logには表示されません。

だけどRailsが自動で出力してくれるController名やAction名。レンダリングしたviewの情報はlog/production.logに表示されます。

なんでかなと思って調べてみたらこちらControllerはRails.loggerに設定されているloggerを使ってませんでした。

https://github.com/rails/rails/blob/master/actionpack/lib/action_controller/log_subscriber.rb#L76

結局サーバー側でGoogle fluendが動かしてそっちで吸い上げることができるので

1
2
3
Rails.application.configure do
  config.google_cloud.use_logging = false
end

にしました。
お手軽にlog/production.logで確認できて良い感じです。

Comments