lib/semantic_logger/appender/honeybadger.rb in semantic_logger-4.2.0 vs lib/semantic_logger/appender/honeybadger.rb in semantic_logger-4.2.1

- old
+ new

@@ -7,61 +7,64 @@ # Send log messages to honeybadger # # Example: # SemanticLogger.add_appender(appender: :honeybadger) # -class SemanticLogger::Appender::Honeybadger < SemanticLogger::Subscriber - # 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 messages where the class name matches the supplied. - # regular expression. All other messages will be ignored. - # Proc: Only include log messages where the supplied Proc returns true - # The Proc must return true or false. - # - # host: [String] - # Name of this host to appear in log messages. - # Default: SemanticLogger.host - # - # application: [String] - # Name of this application to appear in log messages. - # Default: SemanticLogger.application - def initialize(level: :error, formatter: nil, filter: nil, application: nil, host: nil, &block) - super(level: level, formatter: formatter, filter: filter, application: application, host: host, &block) - end +module SemanticLogger + module Appender + class Honeybadger < SemanticLogger::Subscriber + # 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 messages where the class name matches the supplied. + # regular expression. All other messages will be ignored. + # Proc: Only include log messages where the supplied Proc returns true + # The Proc must return true or false. + # + # host: [String] + # Name of this host to appear in log messages. + # Default: SemanticLogger.host + # + # application: [String] + # Name of this application to appear in log messages. + # Default: SemanticLogger.application + def initialize(level: :error, formatter: nil, filter: nil, application: nil, host: nil, &block) + super(level: level, formatter: formatter, filter: filter, application: application, host: host, &block) + end - # Send an error notification to honeybadger - def log(log) - context = formatter.call(log, self) - if log.exception - context.delete(:exception) - Honeybadger.notify(log.exception, context) - else - message = { - error_class: context.delete(:name), - error_message: context.delete(:message), - context: context - } - message[:backtrace] = log.backtrace if log.backtrace - Honeybadger.notify(message) - end - true - end + # Send an error notification to honeybadger + def log(log) + context = formatter.call(log, self) + if log.exception + context.delete(:exception) + ::Honeybadger.notify(log.exception, context) + else + message = { + error_class: context.delete(:name), + error_message: context.delete(:message), + context: context + } + message[:backtrace] = log.backtrace if log.backtrace + ::Honeybadger.notify(message) + end + true + end - private + private - # Use Raw Formatter by default - def default_formatter - SemanticLogger::Formatters::Raw.new + # Use Raw Formatter by default + def default_formatter + SemanticLogger::Formatters::Raw.new + end + end end - end