使用rails标记日志记录,如何记录消息的日志级别?

时间:2012-05-17 01:46:07

标签: ruby-on-rails ruby-on-rails-3 logging ruby-on-rails-3.2

我的rails logger配置当前记录当前时间和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]添加到消息中。

2 个答案:

答案 0 :(得分:8)

Railscasts显示如何通过覆盖SimpleFormatter#调用方法来覆盖记录器以输出日志消息的严重性:

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

有关详细信息,请参阅http://railscasts.com/episodes/56-the-logger-revised

答案 1 :(得分:-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}]