我试图减少日志中的噪音量,并希望禁用Rails在错误期间记录堆栈跟踪。
由于我使用的是错误报告服务(Honeybadger.io),因此我不需要在日志中查看堆栈跟踪,因为它已在错误处理服务的异常报告中提供。< / p>
答案 0 :(得分:1)
根据文档,您应该能够添加一个回溯消音器,通过在块中返回true来排除每一行。
但是,至少在Rails 4.2.5.2中,这似乎并不起作用,即使它确实有效,你仍然会在日志中找到关于异常的一行。
无意中我发现,如果你在消音器块中引发错误,这将会抑制错误消息和整个回溯,这正是我正在寻找的。
Rails.backtrace_cleaner.add_silencer { |_line| raise }
将此hack与concise_logging gem相结合我现在可以拥有如下所示的日志:
答案 1 :(得分:1)
logs the errors是默认的Rails中间件tuple(map(tuple, lista))
。
您可以在DebugExceptions
或config.middleware.delete(ActionDispatch::DebugExceptions)
中用config/environment.rb
删除它
答案 2 :(得分:0)
嗯,ReaderT $ \r -> runReaderT (f r) r
有效,但我称其行为可以预测
由于Rails.backtrace_cleaner.add_silencer
为空(这是因为错误不是来自用户代码而是路由错误),我们会回退到application_trace
,它不会过滤它(它只过滤噪音)。< / p>
您可以通过创建自己的log_formatter来解决它。在framework_trace
和/或development.rb
添加
test.rb
在模型中创建只需要方法config.log_formatter = SilentLogger.new
config.log_formatter.add_silencer { |line| line =~ /lib/ }
的简单类。在那里,您可以根据需要修改回溯。
call