8

私のレールロガー設定は現在、次のように現在の時刻とUUIDを記録しています:

config.logger = ActiveSupport::TaggedLogging.new(Logger.new("#{Rails.root}/log/#{ENV['RAILS_ENV']}.log", 'daily'))
config.log_tags = [Proc.new {Time.now.strftime('%Y-%m-%d %H:%M:%S.%L')}, :uuid]

現在のメッセージのログ レベルも記録する方法はありますか?

つまり、logger.debug を呼び出すと、タグ [DEBUG] がメッセージに追加されます。

4

2 に答える 2

8

Railscastsは、SimpleFormatter#callメソッドをオーバーライドすることにより、ロガーをオーバーライドしてログメッセージの重大度を出力する方法を示しています。

class Logger::SimpleFormatter
  def call(severity, time, progname, msg)
    "[#{severity}] #{msg}\n"
  end
end

詳細については、 http://railscasts.com/episodes/56-the-logger-revisedを参照してください。

于 2012-07-12T14:57:08.297 に答える
-4

MyApp::Application.config.log_level をログタグに追加したところ、うまくいきました。

config.log_tags = [Proc.new {Time.now.strftime('%Y-%m-%d %H:%M:%S.%L')}, :uuid, Proc.new {MyApp::Application.config.log_level}]
于 2012-05-17T08:28:51.753 に答える