Rails 5 TaggedLogging - 想要在日志中显示严重性和时间戳

Shi*_*123 2 logging ruby-on-rails ruby-on-rails-5

我正在尝试使用 TaggedLogging 让 Rails 日志记录显示时间戳和严重性(调试、信息、警告等)。在我的 application.rb 文件中,我有:

config.logger = ActiveSupport::TaggedLogging.new(Logger.new('log/file/location.log'))

我还查看了在日志消息之前添加当前时间以获取可能的解决方案。然而,当我尝试stephencelis给出的解决方案时,我得到一个白色的服务器错误页面。

在这种情况下,我希望继续使用 TaggedLogging。非常感谢任何建议或帮助。

zhi*_*sme 6

默认情况下,ActiveSupport::TaggedLogging 使用最小格式化程序,这就是没有写入时间戳和日志级别的原因。但您可以使用自己的格式化程序。
我在示例中使用默认的 Rails 日志格​​式化程序。

my_logger           = Logger.new(STDOUT)
my_logger.formatter = Logger::Formatter.new
tagged_logger       = ActiveSupport::TaggedLogging.new(my_logger)

tagged_logger.tagged('MY_TAG') { tagged_logger.debug 'debugging under my_tag.' }
=> 'D, [2018-02-19T15:22:40.905304 #16385] DEBUG -- : [MY_TAG] debugging under my_tag.'
Run Code Online (Sandbox Code Playgroud)

更多内容请参阅这篇文章和评论