【问题标题】:Wrong logger level in Rails 4 serviceRails 4 服务中的错误记录器级别
【发布时间】:2018-04-24 02:58:08
【问题描述】:

我有一个 Rails 4 应用程序。在我的 development.rb 配置文件中,我有: config.log_level = :info.

对于大多数应用程序来说,它只显示信息级消息可以正常工作。查询消息也会消失,这没关系。

但是,我的 lib 文件夹中有一些服务。对于他们来说,看起来它没有获得环境日志级别。这是代码:

    @logger = Logger.new(Rails.root.join("log", APP_CONFIG['LOG_FILE']))
    if @logger.debug?
      @logger.info "Logger level = debug"
    else
      @logger.info "Logger level > debug"
    end

输出:

I, [2017-11-10T20:50:51.189067 #36138]  INFO -- : Logger level = debug

我错过了什么?

【问题讨论】:

  • 看到这个答案:stackoverflow.com/a/2980635/382982
  • 是的,但不是 100% 了解解决方案。我想我使用的是第一种方法,但关键是 lib 中的记录器似乎没有获取 production.rb 文件中的配置(即:config.log_level = :info)

标签: ruby-on-rails


【解决方案1】:

您正在调用.info 方法,这会导致日志条目被标记为INFO

调用Logger#debug 应该会导致(我认为)您期望看到的结果:

@logger = Logger.new(Rails.root.join("log", APP_CONFIG['LOG_FILE']))
if @logger.debug?
  @logger.debug "Logger level = debug" # => I, [...]  DEBUG -- : Logger level = debug
else
  @logger.info "Logger level > debug"
end

【讨论】:

  • 没有。我打电话给信息只是为了显示结果。但重点是@logger.debug?正在返回 true,输出为:Logger level = debug
猜你喜欢
  • 2017-08-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-09
  • 1970-01-01
  • 1970-01-01
  • 2019-02-10
相关资源
最近更新 更多