Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Ruby

อัญมณีฮันนี่แบดเจอร์ 4.0 เปิดตัวแล้ว!

เมื่อสัปดาห์ที่แล้วเราได้เปิดตัว honeybadger . เวอร์ชัน 4.0.0 พลอยทับทิม. รุ่นนี้มีคุณลักษณะที่รอคอยมานาน ซึ่งทำให้ง่ายต่อการปรับแต่งรายงานข้อผิดพลาดของคุณก่อนที่จะถูกส่งไปยัง Honeybadger เรายังได้ทำการ refactoring ที่จำเป็นมาก และได้ทำการลบออกบางส่วนและเลิกใช้งานเพื่อการวัดผลที่ดี ไม่ต้องกังวล แม้ว่า API ส่วนใหญ่จะไม่เปลี่ยนแปลง ดังนั้นการอัปเกรดควรเป็นกระบวนการที่ไม่ยุ่งยากสำหรับผู้ใช้ส่วนใหญ่

แนะนำ before_notify โทรกลับ

honeybadgerเวอร์ชันก่อนหน้า gem ให้การโทรกลับสามครั้งซึ่งสามารถใช้เพื่อปรับแต่งแง่มุมต่างๆ ของข้อผิดพลาดที่รายงาน:

  1. Honeybadger.backtrace_filter — การเรียกกลับเพื่อแก้ไข backtrace ที่รายงานไปยัง Honeybadger
  2. Honeybadger.exception_fingerprint — การโทรกลับเพื่อปรับแต่งการจัดกลุ่มข้อผิดพลาดใน Honeybadger
  3. Honeybadger.exception_filter — การเรียกกลับเพื่อพิจารณาว่าควรข้ามรายงานข้อผิดพลาดทั้งหมดหรือไม่

นอกเหนือจากการเรียกกลับเหล่านี้แล้ว ไม่มีทางทั่วโลกในการเปลี่ยนแปลงข้อมูลอื่นๆ ในรายงานข้อผิดพลาด เช่น ข้อความแสดงข้อผิดพลาด แท็ก หรือข้อมูลคำขอ—นอกเหนือจากการช่วยเหลือและการรายงานข้อยกเว้นในเครื่อง นั่นคือสิ่งที่ before_notify . ใหม่ การโทรกลับเข้ามา อันที่จริงแล้วการโทรกลับใหม่นั้นใช้งานได้หลากหลายมากจนแทนที่การเรียกกลับก่อนหน้าทั้งสามรายการซึ่งเลิกใช้แล้วในขณะนี้

ต่อจากนี้ไป คุณสามารถใช้ before_notify โทรกลับเพื่อทำงานเหล่านี้ทั้งหมดให้สำเร็จ และอีกมากมาย นอกจากนี้ยังรองรับการเรียกกลับหลายรายการ ซึ่งให้ความยืดหยุ่นมากขึ้นเมื่อกำหนดค่า Honeybadger:

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 แทน และอาจทำการเปลี่ยนแปลงเล็กน้อยอื่นๆ ซึ่งเป็นส่วนหนึ่งของ API สาธารณะสำหรับ Notice (วัตถุที่ส่งผ่านไปยังการโทรกลับ) มีการเปลี่ยนแปลงเล็กน้อย

สำหรับข้อมูลเพิ่มเติม:

  • คู่มือการอัปเกรด 3.x เป็น 4.x
  • ทำ CHANGELOG ให้สมบูรณ์