我有一个Rails 4应用程序并使用gem exception_notification
。已安装gem,config/environments/production.rb
正在关注:
config.action_mailer.delivery_method = :sendmail
config.action_mailer.perform_deliveries = true
config.action_mailer.raise_delivery_errors = true
config.middleware.use ExceptionNotification::Rack,
:email => {
:email_prefix => "[MyProj Error Report] ",
:sender_address => %{"MyProj" <no-reply@myproj.com>},
:exception_recipients => %w{info@myproj.com}
}
no-reply@myproj.com
电子邮件地址不存在,info@myproj.com
是我的真实电子邮件地址。
如果在制作时出现错误,我就不会收到任何有关它的电子邮件。
我需要添加哪些其他配置信息?
修改
config/environments/production.rb
:
Rails.application.configure do
...
MyApp::Application.config.middleware.use ExceptionNotification::Rack,
:email => {
:email_prefix => "[MyApp_Error] ",
:sender_address => %{"notifier" <notifier@myAppName.com>},
:exception_recipients => %w{your_email_id@gmail.com}
}
end
我使用真实的电子邮件地址修改了代码,但仍未成功。在日志中什么都不是 - 当我想要获取具有不存在ID的记录时,如website.com/articles/123345666777
,错误日志中仅包含以下内容:
ActiveRecord::RecordNotFound (Couldn't find Article with 'id'=123345666777):
app/controllers/articles_controller.rb:175:in `set_article'
答案 0 :(得分:2)
ActiveRecord::RecordNotFound
是一个非常特殊的情况(路由错误和其他一些错误相同)。如果这种异常触发ExceptionNotifier
发送邮件,我会感到惊讶。在生产环境中,Rails将通过呈现404
(未找到)页面来处理此错误,而不是在Rails无法处理异常时发生的500
(服务器错误)。
事实上,ignore_exceptions
中的选项ExceptionNotifier
默认包含此例外。详细了解ignore_exceptions
option and its defaults。
答案 1 :(得分:1)
尝试使用这个...与AppName这样: -
MyAppName::Application.config.middleware.use ExceptionNotification::Rack,
:email => {
:email_prefix => "[MyApp_Error] ",
:sender_address => %{"notifier" <notifier@myAppName.com>},
:exception_recipients => %w{your_email_id@gmail.com}
}