Class: SemanticLogger::Appender::Honeybadger
- Inherits:
-
Subscriber
- Object
- Base
- Subscriber
- SemanticLogger::Appender::Honeybadger
- Defined in:
- lib/semantic_logger/appender/honeybadger.rb
Instance Attribute Summary
Attributes inherited from Subscriber
#application, #environment, #formatter, #host, #logger, #metrics
Attributes inherited from Base
Instance Method Summary collapse
-
#initialize(level: :error, **args, &block) ⇒ Honeybadger
constructor
Honeybadger Appender.
-
#log(log) ⇒ Object
Send an error notification to honeybadger.
Methods inherited from Subscriber
#close, #console_output?, #flush, #level, #should_log?
Methods inherited from Base
#backtrace, #fast_tag, #level, #level=, #measure, #named_tags, #pop_tags, #push_tags, #should_log?, #silence, #tagged, #tags
Constructor Details
#initialize(level: :error, **args, &block) ⇒ Honeybadger
Honeybadger Appender
Parameters
level: [:trace | :debug | :info | :warn | :error | :fatal]
Override the log level for this appender.
Default: :error
formatter: [Object|Proc|Symbol|Hash]
An instance of a class that implements #call, or a Proc to be used to format
the output from this appender
Default: Use the built-in formatter (See: #call)
filter: [Regexp|Proc]
RegExp: Only include log where the class name matches the supplied.
regular expression. All other will be ignored.
Proc: Only include log where the supplied Proc returns true
The Proc must return true or false.
host: [String]
Name of this host to appear in log .
Default: SemanticLogger.host
application: [String]
Name of this application to appear in log .
Default: SemanticLogger.application
40 41 42 |
# File 'lib/semantic_logger/appender/honeybadger.rb', line 40 def initialize(level: :error, **args, &block) super(level: level, **args, &block) end |
Instance Method Details
#log(log) ⇒ Object
Send an error notification to honeybadger
45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
# File 'lib/semantic_logger/appender/honeybadger.rb', line 45 def log(log) context = formatter.call(log, self) if log.exception context.delete(:exception) ::Honeybadger.notify(log.exception, context) else = { error_class: context.delete(:name), error_message: context.delete(:message), context: context } [:backtrace] = log.backtrace if log.backtrace ::Honeybadger.notify() end true end |