title: “[Gem] exception_notification Gmailでエラーを通知させる設定手順 [Rails]”
category: Rails

🤔 tags: [Rails, Ruby, Gem]

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

smartinez87/exception_notification · GitHub


🐮 Gemのインストール

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

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

🍣 初期設定の作成

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

# 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を作成して作成して以下をセット。

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

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

config.action_mailer.raise_delivery_errors = true

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

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

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

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'
...

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

smartinez87/exception_notification · GitHub

🐝 参考リンク

🎃 変更来歴

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

🖥 VULTRおすすめ

VULTR」はVPSサーバのサービスです。日本にリージョンがあり、最安は512MBで2.5ドル/月($0.004/時間)で借りることができます。4GBメモリでも月20ドルです。 最近はVULTRのヘビーユーザーになので、「ここ」から会員登録してもらえるとサービス開発が捗ります!

📚 おすすめの書籍