我想在调用 Rails.logger 的任何时候通知 Honeybadger,并且在我的应用程序中有大量现有的 Rais.logger 调用。
无论如何要创建一个每次调用 Rails.logger.fatal 时调用的钩子?
我想在调用 Rails.logger 的任何时候通知 Honeybadger,并且在我的应用程序中有大量现有的 Rais.logger 调用。
无论如何要创建一个每次调用 Rails.logger.fatal 时调用的钩子?
我认为您应该能够为此滥用formatter
。http://www.ruby-doc.org/stdlib-1.9.3/libdoc/logger/rdoc/Logger.html#label-Format
我最终覆盖了开箱即用的日志格式化程序,如下所示:
class Logger::SimpleFormatter
def call(severity, time, progname, msg)
if Rails.env.production? && (severity == "FATAL" || severity == "ERROR")
@context = { :severity => severity.to_s, :time => time.to_s, :msg => msg.to_s }
Honeybadger.context(@context)
Honeybadger.notify(@context)
end
return "[#{severity}] #{msg}\n"
end
结尾