【问题标题】:Using rails tagged logging, how can I log the log level of a message?使用 rails 标记的日志记录,我如何记录消息的日志级别?
【发布时间】:2012-05-24 15:03:18
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

    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

    【讨论】:

      【解决方案2】:

      我将 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}]
      

      【讨论】:

      • 据我了解,这是为应用程序定义的最低日志级别,而不是单个消息的日志级别。
      猜你喜欢
      • 2016-02-20
      • 1970-01-01
      • 2023-02-06
      • 2011-05-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-23
      • 1970-01-01
      相关资源
      最近更新 更多