【问题标题】:Why should i use Rails.logger instead of logger in my model class为什么我应该在我的模型类中使用 Rails.logger 而不是 logger
【发布时间】:2013-06-07 09:52:58
【问题描述】:

我是 Rails 的新手。我正在使用 log4r 进行日志记录。我观察到,当我在模型中只使用记录器时,它不起作用。但是如果我使用 Rails.logger 日志会很好。为什么会这样?请帮我理解。

  def self.create_user_from_params(auth_params)
    Rails.logger.debug "auth params are ";
    return nil;
  end

有效。但是如果我使用

  def self.create_user_from_params(auth_params)
    logger.debug "auth params are ";
    return nil;
  end

它不起作用。这是我的 log4r yml

log4r_config:
  # define all loggers ...
  loggers:
    - name      : production
      level     : INFO
      trace     : 'false'
      outputters :
      - datefile
    - name      : development
      level     : DEBUG
      trace     : 'true'
      outputters :
      - datefile

  # define all outputters (incl. formatters)
  outputters:
  - type: DateFileOutputter
    name: datefile
    dirname: "log"
    filename: "server.log" # notice the file extension is needed!
    formatter:
      date_pattern: '%H:%M:%S'
      pattern     : '%d %l: %m '
      type        : PatternFormatter

更新我只记得我在我的 config/application.rb 中添加了 'config.active_record.logger = Logger.new("log/sql.log")'

我使用它是因为我想将我的 sqls 记录到单独的文件中。现在我有另一个问题。 如何在不更改 config.active_record.logger 的情况下将 sqls 记录到单独的文件中?

【问题讨论】:

  • 日志是否附加到 server.log 中?
  • 没有。如果我只使用 logger.info/logger.debug 它不会转到 server.log。如果我使用 Rail.logger,那么它会转到 server.log
  • 看起来你没有使用 log4r——你只是在使用默认的记录器。我的建议:不要花时间在这上面——花时间在重要的特性上,当你对 Rails 有了更多的了解后,再回来处理记录器的配置和使用。

标签: ruby-on-rails log4r


【解决方案1】:

看看这个in-depth tutorial on how to use Log4r

具体而言,您的问题可以通过将 config.logger 设置为 Log4r::Logger["development"] (因此 Rails.logger 将记录到 Log4r)或指定 logger = Log4r::Logger["development"] 在要使用“记录器”的文件。然而,设置 config.logger 标志应该适用于 Rails.logger.debug 以及 logger.debug。

链接的博文中也详细描述了单独文件中的 SQL。基本上,您使用 Rails 通知管道并写入自定义记录器,该记录器记录到另一个文件。

【讨论】:

    猜你喜欢
    • 2011-06-19
    • 2016-05-23
    • 1970-01-01
    • 1970-01-01
    • 2018-01-02
    • 1970-01-01
    • 2012-04-30
    • 2018-05-10
    • 2014-03-12
    相关资源
    最近更新 更多