ウェブサービスを作っています。

Rails で本番環境の deprecation warning を独自ログに出力する

Rails 5.0.6 で確認しています。

もっと良い方法がある気もするので、ご存知でしたら教えていただけると幸いです。


config/environments/production.rb (デフォルトで :notify になっていると思います)

config.active_support.deprecation = :notify

config/initializers/deprecation.rb

logger = Logger.new(Rails.root.join('log/deprecation.log'))

ActiveSupport::Notifications.subscribe('deprecation.rails') do |*args|
  data = args.extract_options!
  logger.info data[:message]
  logger.info data[:callstack] * "\n"
end

参考