在 rails 中记录完整的堆栈跟踪,包括所有 gem

Log full stacktrace in rails including all gems

目前,当我查看 rails 应用程序的日志文件时,我得到如下堆栈跟踪:

NoMethodError (undefined method `[]' for nil:NilClass):
  app/controllers/concerns/example.rb:192:in `rescue in create_example'
  app/controllers/concerns/example.rb:163:in `create_example'
  app/controllers/concerns/example.rb:11:in `example'
  app/controllers/example_controller.rb:39:in `create'

错误是由作为 gem 包含的第二个项目触发的。 在 example.rb(关注点)的第 192 行,我们使用了 gem 中的一些 classes 并且在 class 中发生了真正的异常。

另一个例子:

ZeroDivisionError (divided by 0):
  app/controllers/dummy_controller.rb:15:in `index'

第 15 行

test_object.divide_by_zero

test_object 是包含的 gem

中定义的 class 的一个实例

我希望 rails 显示和记录完整的堆栈跟踪,包括所有或特定的 gem,但我不知道如何执行此操作。有人知道怎么做吗?或者有人可以在正确的方向上推动我?

谢谢!!!

根据您使用的 rails 版本,这可能会有所帮助:

http://api.rubyonrails.org/classes/ActiveSupport/BacktraceCleaner.html#method-i-remove_silencers-21

它的用法是这样的:

Rails.backtrace_cleaner.remove_silencers!