我是铁路的新手。我正在使用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记录到单独的文件中答案 0 :(得分:0)
看看这个in-depth tutorial on how to use Log4r。
具体来说,您的问题可以通过将config.logger设置为Log4r :: Logger [“development”](因此Rails.logger将登录到Log4r)或指定logger = Log4r :: Logger [“development”]来解决。您想要使用“logger”的文件。但是,设置config.logger标志应该与Rails.logger.debug以及logger.debug一起使用。
链接的博客中还详细描述了单独文件中的SQL。基本上,您使用Rails Notification Pipeline并写入记录到另一个文件的自定义记录器。