我为什么要使用Rails ?Logger而不是Logger在我的模型类中



我是rails的新手。我使用log4r进行日志记录。我观察到,当我在我的模型中只使用记录器时,它不起作用。但是如果我使用Rails。日志发送正常。为什么会发生这种情况?请帮我理解。

  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

update我刚想起我已经添加了'config.active_record。log = log .new("log/sql.log")' in my config/application.rb

我使用它,因为我想记录我的sql到单独的文件。现在我有另一个问题。如何在不改变config.active_record.logger的情况下记录sql以分离文件?

看看这个关于如何使用Log4r的深入教程。

具体来说,您的问题可以通过设置config来解决。Log4r:: logger ["development"](因此Rails。logger将记录到Log4r)或在要使用"logger"的文件中指定logger = Log4r:: logger ["development"]。设置配置。然而,logger标志应该与Rails.logger.debug以及logger.debug一起使用。

单独文件中的

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

最新更新