Help us understand the problem. What is going on with this article?

バッチ処理用にloggerを追加する

More than 5 years have passed since last update.

Railsでバッチ処理をしていて標準のログとは別のファイルに出力したかったので、バッチ処理のログを別のファイルに出力する方法をまとめておきます。

標準のLoggerでもいいのですがLog4rを使用したので、Gemfileに下記を追加します。

Gemfile
gem 'log4r'

Log4rの初期設定を下記に記述します。

config/initializers/batch_logger.rb
formatter = Log4r::PatternFormatter.new(:pattern => "%d %C [%l]: %M", :date_format => "%Y/%m/%d %H:%M:%S")
if Rails.env == "development"
  outputter = Log4r::StdoutOutputter.new(STDOUT, :formatter => formatter)
else
  outputter = Log4r::StdoutOutputter.new(File.expand_path("log/batch_log_#{Rails.env}.log", Rails.root), :formatter => formatter)
end
BatchLogger = Log4r::Logger.new("My App")
BatchLogger.add(outputter)

これで、scriptの中でBathLogger.errorBatchLogger.infoと記述してログに出力します。

hrtkmztn
Ruby, Ruby on Rails, GitHub, Rhodes, JQuery
gamba
「笑顔ではたらく」をつくる gamba!
http://www.getgamba.com/top
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away