在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 ,以及开发和测试模式下的调试。