在Ruby on Rails中设置日志记录级别
我正在使用以下代码来配置我的Ruby on Rails应用程序中的日志记录:
environment.rb中:
Rails.logger = Logger.new(STDOUT) class Logger def format_message(severity, timestamp, progname, msg) "#{timestamp.to_formatted_s(:db)} #{severity} #{msg}\n" end end
我正在尝试将日志记录级别设置为现在使用警告
config.log_level = :warn
在我的production.rb中,但似乎没有用。 我在这里错过了什么吗?
如果我在我的environment.rb中放置Rails.logger.level = 4,它似乎确实有效。 但我想在我的环境初始化器中配置一些东西。
根据官方文档 ,您应该使用:
config.log_level = :warn # In any environment initializer, or Rails.logger.level = 0 # at any time
如果这些都不适合您,请尝试:
config.log_level = Logger::WARN
如果这不起作用,请尝试:
config.logger.level = Logger::WARN
注意:最终方法似乎将两种官方策略混为一谈,但在某些情况下有效
对于Rails 4.0,您可以在production.rb
(或您想要的环境)中设置值,如下所示:
# Set to :debug to see everything in the log. config.log_level = :warn
更新 文档说明如下:
2。2日志级别
记录某些内容时,如果消息的日志级别等于或高于配置的日志级别,则会将其打印到相应的日志中。 如果您想知道当前的日志级别,可以调用
Rails.logger.level
方法。可用的日志级别为::
:debug
,:info
,:warn
,:error
,:fatal
和:unknown
,分别对应于0到5之间的日志级别编号。 要更改默认日志级别,请使用config.log_level = :warn # In any environment initializer, or Rails.logger.level = 0 # at any time
当您想要在开发或登台下登录时,这很有用,但您不希望使用不必要的信息填充生产日志。
默认的Rails日志级别是生产模式中的
info
,以及开发和测试模式下的调试。