酒と泪とRubyとRailsと

Ruby on Rails と Objective-C は酒の肴です!

[Gem] Exception_notification Gmailでエラーを通知させる設定手順 [Rails]

Where?exception_notificationはRailsでエラーが発生した時にメールで通知をしてくれるGemです。このGemをGmailを使ってエラーを通知するように設定しました!

smartinez87/exception_notification · GitHub


Gemのインストール

いつもどおりGemfileに以下を追加して、bundle installを実行してください。

1
2
# exception_notification
gem 'exception_notification', require: "exception_notifier"

初期設定の作成

Gmailでの送付設定を行います。config/initializers/gmail.rbを作成して以下をセット。

1
2
3
4
5
6
7
8
9
10
11
12
13
# Use Gmail
ActionMailer::Base.delivery_method = :smtp
ActionMailer::Base.perform_deliveries = true
ActionMailer::Base.raise_delivery_errors = true
ActionMailer::Base.smtp_settings = {
    :enable_starttls_auto => true,
    :address => 'smtp.gmail.com',
    :port => 587,
    :domain => 'gmail.com',
    :authentication => :plain,
    :user_name => 'めーるあどれす',
    :password => 'パスワード'
}

config/initializers/exception_notification.rbを作成して作成して以下をセット。

1
2
3
4
5
6
Rails.application.config.middleware.use(
    ExceptionNotifier,
    :email_prefix => "[アプリの名前]",
    :sender_address => %{"No Reply" <送信元めーるあどれす>},
    :exception_recipients => %w{送付先めーるあどれす}
)

もし開発環境でもメールを送りたい場合は、config/environment/development.rbに以下の設定のように変更。

1
config.action_mailer.raise_delivery_errors = true

設定の確認として、文字コードをセットせずに全角を使って、(ArgumentError) "invalid byte sequence in US-ASCII"を発生させてみます。

1
2
3
4
5
class BooksController < ApplicationController
  def index
    @test = "もあうぃjふぉあwf@い"
  end
end

結果として送られてくるメールは以下のとおりです。(ちょっと省略してます)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
An ArgumentError occurred in #:

invalid byte sequence in US-ASCII
better_errors (0.3.2) lib/better_errors/stack_frame.rb:19:in `from_exception'

-------------------------------
Request:
-------------------------------
....

-------------------------------
Session:
-------------------------------
....

-------------------------------
Environment:
-------------------------------
....

-------------------------------
Backtrace:
-------------------------------
....

ということで素敵なエラー対策を!

smartinez87/exception_notification · GitHub

Special Thanks

変更来歴

01/05 10:55 Gemfileの記述を変更

おすすめの書籍