rakeタスクのログを調べやすくするために、ActiveSupport::TaggedLoggingを使って読みやすくする方法のメモ。
# lib/rake_logger_rails.rb module RakeLoggerRails # rakeタスクでログを出力するとき、自動的にタグ付けを行います。 # # task foo: :environment do # logger.info('hello') # Logs "[RAKE] [foo] hello" # end def execute(*) if Rails.logger Rails.logger.tagged('RAKE', name) { super } else super end end end Rake::Task.prepend(RakeLoggerRails) def logger Rails.logger end
Rakefile の中で上のファイルを読み込む。
# Rakefile require_relative 'config/application' require 'rake_logger_rails' Rails.application.load_tasks
これで、タスク内では logger
を簡単に使える。
task foo: :environment do logger.info 'hello' #=> [RAKE] [foo] hello end