Ste*_*ick 10 logging ruby-on-rails
有没有办法从运行的脚本中禁用所有日志记录(无论是来自ActiveRecord,Rails的其他部分,插件等)script/runner?我运行了一个很长的数据加载脚本,它产生了大量无用的日志信息.我并不是想改变script/runner环境(例如,生产,开发等) - 目前需要在"开发"环境中运行脚本,而且目前这样做没有问题.
我想做的就是在脚本生命周期内禁止所有日志记录.从阅读的文档,它看起来像如果我能得到一个处理的Rails::Configuration我应该是能够设置log_level为以外的东西:debug或者设置它logger来nil.我是在正确的轨道上吗?如果是这样,我如何访问其Rails::Configuration对象?
Jam*_*noy 30
我可以想到几种方法.
1)将日志级别设置得如此之高,以至于不记录任何内容:
ActiveRecord::Base.logger.level = Logger::Severity::UNKNOWN
Run Code Online (Sandbox Code Playgroud)
有关详细信息,请参阅Logger :: Severity.未知是最高的.
"level"只是一个数字,所以如果你感到偏执,它可以设置为Logger :: Severity :: UNKNOWN + 1.:)
2)将输出发送到/ dev/null.
ActiveRecord::Base.logger = Logger.new('/dev/null')
Run Code Online (Sandbox Code Playgroud)
(我假设有是使用Rails的记录器只是一个实例,它是你的ActiveRecord通过:: Base.logger得到一个.如果有更多的人你必须要找到他们,拨弄他们也.)
如果您不喜欢这些,可以通过阅读Logger文档找到其他内容.
| 归档时间: |
|
| 查看次数: |
9065 次 |
| 最近记录: |