2017-02-28 3 views
0

Airbrake 알림을 올바르게 전송하는 Rails 앱이 있지만 알림에 일부 사용자 정보를 추가하려고합니다.Airbrake 알림에 사용자 정보를 추가하는 방법은 무엇입니까?

airbrake gem, v5.7.1을 사용 중이며 middleware을 추가하여 캐치되지 않은 예외를 포착하고 다시 일으키기 전에보고합니다.

가 나는 초기화에 필터를 추가하려면 README에 따라, 시도 :

class UserDetailsFilter 
    def call(notice) 
    if notice.stash.has_key?(:rack_request) 
     user_credentials = notice.stash[:rack_request].cookies["user_credentials"]   
     unless user_credentials.blank? 
     user_id = user_credentials.split(':').last 
     user = User.find(user_id) 
     notice[:params][:user_email] = user.email 
     notice[:params][:user_name] = "#{user.first_name} #{user.last_name}" 
     end 
    end 
    end 
end 

Airbrake.add_filter(UserDetailsFilter.new) 

는이 코드가 실행되는 것을 확인할 수 및 그 통지가 :params 해시 수정해야합니까 binding.pry 사용. 그러나 Airbrake UI의 매개 변수에는 액션 및 컨트롤러 정보 만 있습니다.

답변

1

이것은 Airbrake gem의 버그로, 수정되어 Airbrake 5.8.0에 발표되었습니다.

0

이 정보가 대시 보드에 표시되지 않는 이유가 정확히 무엇인지 모르겠지만 매개 변수가 올바르게 표시되어야합니다.

에어 브레이크는 https://airbrake.io/docs/api/#create-notice-v3으로 사용자 정보를 notice[:context][:user]으로 설정합니다. 해당 정보를 설정해보십시오.

또는 사용자 개체를 전달하는 current_user 메서드를 정의 할 수 있으면 라이브러리는 사용자가 검색하려고 시도하는 값을 추측 할 수 있습니다.

def current_user 
    @current_user ||= User.find(user_id) 
end 
+0

내 컨트롤러에 이미'current_user' 메소드가 있습니다. 필터를 추가하지 않고도 알림에 사용자 정보를 가져와야한다고 제안 하시겠습니까? – Kris

+0

예, 그렇게되기를 기대합니다. 에어 브레이크가 메시지를 보낼 수 있습니까? 나는 너의 프로젝트를 조사하고 싶다. – kyrylo

+0

에어 브레이크에 근무합니까? – Kris