पिछले हफ्ते हमने honeybadger
. का संस्करण 4.0.0 जारी किया रूबी रत्न। इस रिलीज़ में एक लंबे समय से प्रतीक्षित विशेषता शामिल है जो आपकी त्रुटि रिपोर्ट को हनीबैगर को भेजे जाने से पहले अनुकूलित करना और भी आसान बनाती है। हमने कुछ बहुत जरूरी रिफैक्टरिंग भी की, और अच्छे उपाय के लिए कुछ निष्कासन और बहिष्करण किए। चिंता न करें, हालांकि—अधिकांश API अपरिवर्तित रहते हैं, इसलिए अपग्रेड करना अधिकांश उपयोगकर्ताओं के लिए अपेक्षाकृत दर्द रहित प्रक्रिया होनी चाहिए।
पेश है before_notify
कॉलबैक
honeybadger
. के पुराने संस्करण मणि ने तीन कॉलबैक प्रदान किए जिनका उपयोग रिपोर्ट की गई त्रुटियों के विभिन्न पहलुओं को अनुकूलित करने के लिए किया जा सकता है:
Honeybadger.backtrace_filter
— हनीबैजर को रिपोर्ट किए गए बैकट्रेस को संशोधित करने के लिए कॉलबैकHoneybadger.exception_fingerprint
— Honeybadger में त्रुटियों के समूहन को अनुकूलित करने के लिए कॉलबैकHoneybadger.exception_filter
- एक कॉलबैक यह निर्धारित करने के लिए कि क्या त्रुटि रिपोर्ट को पूरी तरह से छोड़ दिया जाना चाहिए
इन कॉलबैक के अलावा, त्रुटि रिपोर्ट में अन्य डेटा को बदलने का कोई वैश्विक तरीका नहीं था, जैसे कि त्रुटि संदेश, टैग, या डेटा का अनुरोध - स्थानीय रूप से अपवादों को बचाने और रिपोर्ट करने से परे। यहीं पर नया before_notify
कॉलबैक आता है। वास्तव में, नया कॉलबैक इतना बहुमुखी है कि यह पिछले तीनों कॉलबैक को पूरी तरह से बदल रहा है, जो अब बहिष्कृत हैं।
आगे बढ़ते हुए, आप before_notify
. का उपयोग कर सकते हैं इन सभी कार्यों को पूरा करने के लिए कॉलबैक, और बहुत कुछ। एकाधिक कॉलबैक भी समर्थित हैं, जो हनीबैगर को कॉन्फ़िगर करते समय अधिक लचीलापन प्रदान करता है:
Honeybadger.configure do |config|
# Ignore an error report
# Replaces Honeybadger.exception_filter
config.before_notify do |notice|
notice.halt! if notice.controller == 'auth'
end
# Modify the backtrace
# Replaces Honeybadger.backtrace_filter
config.before_notify do |notice|
notice.backtrace.reject!{|l| l =~ /gem/ }
end
# Customize error grouping
# Replaces Honeybadger.exception_fingerprint
config.before_notify do |notice|
notice.fingerprint = 'new fingerprint'
end
# Change all the properties!
config.before_notify do |notice|
notice.api_key = 'custom api key'
notice.error_message = "badgers!"
notice.error_class = 'MyError'
notice.backtrace = ["/path/to/file.rb:5 in `method'"]
notice.fingerprint = 'some unique string'
notice.tags = ['foo', 'bar']
notice.context = { user: 33 }
notice.controller = 'MyController'
notice.action = 'index'
notice.parameters = { q: 'badgers?' }
notice.session = { uid: 42 }
notice.url = "/badgers"
end
end
हम नए before_notify
. के बारे में उत्साहित हैं कॉलबैक, और विश्वास है कि यह आगे बढ़ते हुए बहुत सारे नए विकल्प खोलेगा!
4.x में अपग्रेड करना
3.x पर अधिकांश उपयोगकर्ताओं के लिए, उन्नयन असमान होना चाहिए। यदि आप ऊपर बताए गए तीन कॉलबैक का उपयोग कर रहे हैं, तो आपको before_notify
का उपयोग करने के लिए उन्हें अपडेट करना होगा इसके बजाय, और संभावित रूप से Notice
. के लिए सार्वजनिक API के भाग के रूप में कुछ अन्य छोटे परिवर्तन करें (ऑब्जेक्ट को कॉलबैक में पास किया गया) थोड़ा बदल गया है।
अधिक जानकारी के लिए:
- 3.x से 4.x अपग्रेड गाइड
- बदलाव पूरा करें