Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Ruby

हनीबैगर रत्न 4.0 जारी किया गया है!

पिछले हफ्ते हमने honeybadger . का संस्करण 4.0.0 जारी किया रूबी रत्न। इस रिलीज़ में एक लंबे समय से प्रतीक्षित विशेषता शामिल है जो आपकी त्रुटि रिपोर्ट को हनीबैगर को भेजे जाने से पहले अनुकूलित करना और भी आसान बनाती है। हमने कुछ बहुत जरूरी रिफैक्टरिंग भी की, और अच्छे उपाय के लिए कुछ निष्कासन और बहिष्करण किए। चिंता न करें, हालांकि—अधिकांश API अपरिवर्तित रहते हैं, इसलिए अपग्रेड करना अधिकांश उपयोगकर्ताओं के लिए अपेक्षाकृत दर्द रहित प्रक्रिया होनी चाहिए।

पेश है before_notify कॉलबैक

honeybadger . के पुराने संस्करण मणि ने तीन कॉलबैक प्रदान किए जिनका उपयोग रिपोर्ट की गई त्रुटियों के विभिन्न पहलुओं को अनुकूलित करने के लिए किया जा सकता है:

  1. Honeybadger.backtrace_filter — हनीबैजर को रिपोर्ट किए गए बैकट्रेस को संशोधित करने के लिए कॉलबैक
  2. Honeybadger.exception_fingerprint — Honeybadger में त्रुटियों के समूहन को अनुकूलित करने के लिए कॉलबैक
  3. 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 अपग्रेड गाइड
  • बदलाव पूरा करें

  1. ViewComponent Gem का परिचय

    रिएक्ट से प्रेरित, ViewComponents रूबी ऑब्जेक्ट हैं जिनका उपयोग दृश्य प्रस्तुत करने के लिए मार्कअप बनाने के लिए किया जाता है। ViewComponent रेल में पुन:प्रयोग करने योग्य, परीक्षण योग्य और इनकैप्सुलेटेड व्यू घटकों के निर्माण के लिए एक ढांचा है। आम तौर पर, पुन:प्रयोज्य दृश्य आंशिक का उपयोग करके रेल मे

  1. किसी बूट डिस्क का पता नहीं चला है या डिस्क विफल हो गई है [हल किया गया]

    कोई बूट डिस्क नहीं मिली है या डिस्क विफल हो गई है [समाधान]: त्रुटि स्वयं कहती है कि कोई बूट डिस्क का पता नहीं चला है जिसका अर्थ है कि या तो बूट कॉन्फ़िगरेशन सही ढंग से सेट नहीं है या आपकी हार्ड डिस्क दूषित हो गई है। बूट कॉन्फ़िगरेशन को BIOS (बेसिक इनपुट/आउटपुट सिस्टम) सेटअप में बदला जा सकता है, लेकि

  1. ठीक करें कार्य छवि दूषित है या उसके साथ छेड़छाड़ की गई है

    ठीक करें कार्य छवि दूषित है या के साथ छेड़छाड़ की गई है: जब आप टास्क शेड्यूलर के तहत विशिष्ट कार्य चलाने का प्रयास करते हैं तो यह आपको एक त्रुटि संदेश दे सकता है कार्य छवि दूषित है या छेड़छाड़ की गई है। संदेश स्वयं निर्दिष्ट करता है कि कार्य दूषित है या कोई तृतीय पक्ष ऐप आपके कार्य शेड्यूलर कार्यों