2011-09-26 16 views
10

मुझे एयरब्रैक मणि के माध्यम से मेरे रेल 3 ऐप के अपवाद भेजना मुश्किल हो गया है। पहले मैंने सोचा था कि मेरे हिस्से पर एक एयरब्रैक कॉन्फ़िगरेशन त्रुटि थी, लेकिन परीक्षण और त्रुटि के बाद और दस्तावेज़ीकरण (https://github.com/thoughtbot/airbrake#readme) को बहुत बारीकी से पढ़ने के बाद, मुझे पता चला कि एयरब्रैक त्रुटियों की रिपोर्ट नहीं करता है जब विकास वातावरण में कोई ऐप चल रहा है। जब उत्पादन वातावरण में ऐप चल रहा है तो यह त्रुटियों की रिपोर्ट करता है।विकास और उत्पादन वातावरण दोनों में सभी रेल अपवादों को लॉग इन करने के लिए मैं एयरब्रैक मणि को कैसे कॉन्फ़िगर कर सकता हूं?

क्या एयरब्रैक कॉन्फ़िगरेशन फ़ाइल उत्पन्न करने के लिए कोई झंडा है जो स्वचालित रूप से उन वातावरण की सूची में विकास वातावरण शामिल करता है जिसमें अधिसूचनाएं भेजी नहीं जानी चाहिए?

वर्तमान में मैं README

script/rails generate airbrake --api-key your_key_here 

उत्तर

18

सीधे।

config.consider_all_requests_local  = false 

config.consider_all_requests_local  = true 
अपने config/environments/development.rb में

के बजाय

। मेरे मामले में, जैसा कि मुझे कई अन्य लोगों में संदेह है, यह केवल एक अस्थायी परिवर्तन था इसलिए मैं एयरब्रैक के notify_airbrake "परीक्षण" कर सकता हूं।

आप की क्या ज़रूरत है airbrake.rb

+20

मुझे यह इंगित करना चाहिए कि इसके अलावा ** ** ** 'airbrake.rb' में 'config.development_environments = []' की आवश्यकता है! –

+0

एक और बात यह है कि, एयरब्रैक में त्रुटि दिखाने के लिए, यह आपके एयरब्रैक खाता सेटिंग्स में कॉन्फ़िगर किए गए सबडोमेन से आना चाहिए (उदाहरण के लिए, शायद 'लोकलहोस्ट' नहीं)। आप स्वयं को एक उपयुक्त डोमेन (उदा। Dev.example.com) देने के लिए '/ etc/hosts' का उपयोग कर सकते हैं। अन्य दो चीजों के अलावा इसकी आवश्यकता है। – connec

14

एक config विकल्पों के बारे में सुनिश्चित नहीं हैं कि में सूचीबद्ध कमांड को क्रियान्वित कर रहा हूँ, लेकिन आप स्पष्ट रूप से

notify_airbrake(exception) 

तो का उपयोग कर ऐसा करने के लिए एक नियंत्रक से airbrake को सूचनाएं भेज सकते हैं यह विकास में, आप अपने application_controller में सभी त्रुटियों को पकड़ सकते हैं, एक अधिसूचना भेज सकते हैं और फिर त्रुटियों को पहले के रूप में संभाल सकते हैं। शुरू करने के लिए rescue_from पर एक नज़र डालें। इस प्रकार मैं अपने स्टेजिंग पर्यावरण से अधिसूचनाएं प्राप्त करने के लिए ऐसा कर रहा हूं (या, सटीक होने के लिए, विकास और परीक्षण के अलावा किसी भी पर्यावरण)।

class ApplicationController < ActionController::Base 

    rescue_from Exception, :with => :render_error 

    private 

    def render_error(exception) 
    render :file => "#{Rails.root}/public/500.html", :layout => false, :status => 500 
    logger.error(exception) 
    notify_airbrake(exception) unless Rails.env.development? || Rails.env.test? 
    end 
end 
+1

में config.development_environments = [] यह एक महान जगह शुरू करने के लिए है। जब मैंने अपवाद के लिए rescue_from विधि जोड़ा, तो मैंने देखा कि 500.html फ़ाइल को प्रस्तुत किया गया था और ब्लॉक को ब्लॉक की पहली दो पंक्तियों में निर्दिष्ट के रूप में लिखा गया था। दुर्भाग्यवश, notify_airbrake या तो विकास या डिफ़ॉल्ट वातावरण में काम नहीं करता था, केवल उत्पादन में (जब तक कि मैं शर्त तक नहीं हटा देता)। –

+0

मुझे लगता है कि मेरा आदर्श समाधान 'एयरब्रैक :: कॉन्फ़िगरेशन' कक्षा में विशेष रूप से 'विकास_ वातावरण' ऑब्जेक्ट में स्थित है। http://rdoc.info/github/thoughtbot/airbrake/master/Airbrake/Configuration#development_environments-instance_method –

+0

कृपया एक पूरक उत्तर के लिए नीचे देखें! –

संबंधित मुद्दे

 संबंधित मुद्दे