গত সপ্তাহ আমরা honeybadger Ruby gem-এর 4.0.0 ভার্সন রিলিজ করেছি। এই রিলিজে একটি দীর্ঘদিন প্রত্যাশিত ফিচার অন্তর্ভুক্ত যা আপনার এরর রিপোর্ট Honeybadger-এ পাঠানোর আগে কাস্টমাইজ করা আরও সহজ করে দেয়। আমরা কিছু জরুরি রিফ্যাক্টরিংও করেছি, এবং কিছু রিমুভাল ও ডিপ্রিকেশনও করা হয়েছে। চিন্তা ন করুন—API-এর অধিকাংশ অংশ অপরিবর্তিত রয়েছে, তাই অধিকাংশ ব্যবহারকারীর জন্য আপগ্রেড করা নিখুঁতভাবে সহজ হবে।
before_notify কলব্যাক পরিচিতি
honeybadger gem-এর পূর্ববর্তী ভার্সনগুলো তিনটি কলব্যাক প্রদান করত যা রিপোর্ট করা এররগুলোর বিভিন্ন দিক কাস্টমাইজ করতে ব্যবহার করা হতো:
Honeybadger.backtrace_filter— Honeybadger-এ রিপোর্ট করা ব্যাকট্রেস মডিফাই করার কলব্যাকHoneybadger.exception_fingerprint— Honeybadger-এ এরর গ্রুপিং কাস্টমাইজ করার কলব্যাকHoneybadger.exception_filter— এরর রিপোর্ট সম্পূর্ণ বাদ দেওয়া উচিত কিনা তা নির্ধারণের কলব্যাক
এই কলব্যাকগুলো ছাড়া, এরর রিপোর্টের অন্যান্য ডেটা — যেমন এরর মেসেজ, ট্যাগস, বা রিকুয়েস্ট ডেটা — গ্লোবালি পরিবর্তন করার কোনো পদ্ধতি নেই, রেসকিউ করে লোকালি এক্সেপশন রিপোর্ট করার ব্যতিক্রমে। সেটাই হলো নতুন before_notify কলব্যাকের কাজ। আসলে, নতুন কলব্যাকটি এতটাই ভার্সাটাইল যে এটি পূর্বের তিনটি কলব্যাকই সম্পূর্ণরূপে রিপ্লেস করছে, যেগুলো এখন ডিপ্রিকেটেড।
আগামীতে, আপনি before_notify কলব্যাক ব্যবহার করে এই সকল কাজ এবং আরও অনেক কিছু করতে পারবেন। একাধিক কলব্যাকও সাপোর্ট করা হয়, যা Honeybadger কনফিগারেশনে বেশি ফ্লেক্সিবিলিটি দেয়:
Honeybadger.configure do |config| # একটি এরর রিপোর্ট বাদ দিন # Honeybadger.exception_filter রিপ্লেস করে config.before_notify do |notice| notice.halt! if notice.controller == 'auth' end # ব্যাকট্রেস মডিফাই করুন # Honeybadger.backtrace_filter রিপ্লেস করে config.before_notify do |notice| notice.backtrace.reject!{|l| l =~ /gem/ } end # এরর গ্রুপিং কাস্টমাইজ করুন # Honeybadger.exception_fingerprint রিপ্লেস করে config.before_notify do |notice| notice.fingerprint = 'new fingerprint' end # সব প্রপার্টি পরিবর্তন করুন! 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 to 4.x আপগ্রেড গাইড
- সম্পূর্ণ CHANGELOG