【问题标题】:How to change log level from number to log name using ougai logger如何使用 ougai logger 将日志级别从数字更改为日志名称
【发布时间】:2019-07-25 09:50:38
【问题描述】:

我正在使用 ougai 记录器在 Ruby on Rails 应用程序中启用自定义日志记录。当我尝试打印以下日志时,它会以数字形式打印“级别”。相反,我希望它在日志级别本身。

logger.info('Information!')

{"name":"main","hostname":"mint","pid":14607,"level":30,"time":"2016-10-16T22:26:48.835+09:00","v":0,"msg":"Information!"}

预期结果

logger.info('Information!')

{"name":"main","hostname":"mint","pid":14607,"level":"Info","time":"2016-10-16T22:26:48.835+09:00","v":0,"msg":"Information!"}

【问题讨论】:

    标签: ruby-on-rails logging


    【解决方案1】:

    我知道这是不久前被问到的,但对于其他有同样问题的人来说......

    我解决这个问题的方法是制作一个客户格式化程序:

    class LogLevelLoggerFormatter < Ougai::Formatters::Bunyan
      # override the to_level method to just return the string
      # instead of converting it to an integer
      # see .../gems/ougai-1.5.8/lib/ougai/formatters/bunyan.rb
      def to_level(severity)
        severity
      end
    end
    

    然后,在配置/环境文件中:

      require 'log_level_logger_formatter'
      require 'ougai'
    
      Cube::Application.configure do
        config.logger = Ougai::Logger.new(STDOUT)
        config.logger.formatter = LogLevelLoggerFormatter.new
        # ... other config
      end
    

    这个问题是这种方法的“灵感”https://github.com/tilfin/ougai/issues/99

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多