Rails アプリの場合、Raven (Sentry) コンテキストをbefore_action
insideに設定するだけで成功しましたApplicationController
。
# application_controller.rb
class ApplicationController < ActionController::Base
before_action :set_raven_context
def set_raven_context
# I use subdomains in my app, but you could leave this next line out if it's not relevant
context = { account: request.subdomain }
context.merge!({ user_id: current_user.id, email: current_user.email }) unless current_user.blank?
Raven.user_context(context)
end
end
これは、raven Rack ミドルウェアがリクエストごとにコンテキストをクリアするために機能します。こちらをご覧ください。ただし、例外にならない大部分のケースでもコンテキストを設定しているため、最も効率的ではない場合があります。しかし、いずれにせよ、それはそれほど高価な操作ではなく、新しいRackミドルウェアなどを注入することを本当にいじる必要もなく、かなり遠くまで行くことができます.