Comments (3)
What error is it throwing? Got a backtrace?
from honeybadger-ruby.
It wasn't throwing any error at all, it simply wasn't working - the honeybadger-local-context code wasn't being called at all.
Bigup @levity for helping me implement the hook using
alias_method_chain :notify, :context
which is now working like a charm.
Now we get great context when exceptions are thrown in rake tasks and its making debugging the exceptions much easier.
This does make the gem Rails dependent, so if there's a way to have this work without relying on alias_method_chain, that'd be great.
Here's the complete method using alias_method_chain:
require 'honeybadger'
require 'binding_of_caller'
module Honeybadger
class << self
def notify_with_context(exception, options = {})
ctx = binding.of_caller(1)
vars = eval('local_variables', ctx)
locals_array = vars.map { |arg| [arg, eval(arg.to_s, ctx)]}
options[:context] ||= {}
options[:context][:local_variables] = Hash[*locals_array.flatten(1)]
puts "Notify called with options: #{options}"
return notify_without_context(exception, options)
end
alias_method_chain :notify, :context
end
end
@joshuap - Do you see how this could be rewritten to not rely on alias_method_chain?
from honeybadger-ruby.
It should be:
alias_method :notify_without_context, :notify
alias_method :notify, :notify_with_context
from honeybadger-ruby.
Related Issues (20)
- Add support for Hanami HOT 1
- `Honeybadger.notify` requires `error_message` to be specified when using a Hash HOT 4
- Documentation and source mismatch with Rails.error.record HOT 1
- `Honeybadger::Config#respond_to?` Always Returns true
- Help suppressing a certain error HOT 4
- Honeybadger CLI errors when the deploy command is called with any option HOT 3
- Minitest: Test Backend Notices Not Added to `Honeybadger::Backend::Test` HOT 9
- Invalid class_name param in documentation HOT 1
- Use nested context from objects where available
- Sidekiq 7.1.5 and later changes number of arguments for error handlers
- Add check-in configuration sync HOT 2
- Automate releases with Github Actions
- Flaky test in JRuby test matrix entry
- Allow check-ins to be made by slug as well as id. HOT 8
- Avoid bundling unnecessary dependencies in published gem HOT 3
- Exceptions raised in jobs from Solid Queue are not automatically reported HOT 10
- Sanitizer#filter_key? returns a warning for Numeric hash keys HOT 5
- ActiveJob premature reporting HOT 2
- ActiveJob rescued exceptions should not be reported HOT 2
- Honeybadger.context returns Honeybadger::Agent when passing a block
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from honeybadger-ruby.