Rails异常通知程序 - 添加到数据库

时间:2012-10-25 14:38:42

标签: ruby-on-rails exception-handling exception-notification

我们在服务器上设置了异常通知程序,但是如果电子邮件服务器关闭,则需要备份解决方案,这样我们就可以在数据库中记录异常。

异常通知程序如何监听每个方法调用,我也能听吗?

或..是否有一个gem已经同时发送电子邮件并记录到数据库中以获取异常?

1 个答案:

答案 0 :(得分:2)

使用异常通知程序,最好的办法是在rescue_from中使用ApplicationController查找所有异常,然后执行日志记录和手动调用异常通知程序。

示例:

class ApplicationController < ActionController::Base
  rescue_from Exception, :with => :log_and_notify

  def log_and_notify(error)
    # Save to the DB

    # This manual call example is straight from the Exception Notifier github page.
    ExceptionNotifier::Notifier.exception_notification(request.env, exception, :data => {:message => "was doing something wrong"}).deliver
  end
end

因此,如果控制器在其中一个操作期间出现错误,它将转到此方法,您可以在发送电子邮件之前将其保存到数据库中。