【发布时间】:2022-10-15 01:15:24
【问题描述】:
我的 Rails 应用程序在 Heroku 中运行;最近,我们将 Heroku LOG_LEVEL 更改为 WARN,因为系统日志中充斥着大量不需要的信息。但是,在某些领域,我还是想使用 Rails.logger.info;
目前,在 Heroku 中,我们有这个:
LOG_LEVEL = WARN
在production.rb中,仍然是
config.log_level = :info
config.log_formatter = ::Logger::Formatter.new
上面的配置我们没有改变它,因为如果我们设置它,优先级是 LOG_LEVEL。因此,使用上述配置,如果我们输入Rails.logger.info "Hello world,",那将不起作用,因为记录器只会处理等于或更高的日志以警告重要性。
所以我们尝试了另一种方式。
创建了一个名为 custom_logger.rb 的新初始化程序;我们把
$INFO_LOGGER = Rails.logger.dup
$INFO_LOGGER.level = :info
然后在我们想使用信息的任何地方,我们只需调用$INFO_LOGGER.info "Hello World," 这个打印
这是一种正确的方法,比如使用全局变量吗?
【问题讨论】:
标签: ruby-on-rails heroku logging ruby-on-rails-5