class Shift::CircuitBreaker::CircuitLogger

Constants

ERROR_MESSAGE

Attributes

logger[RW]
remote_logger[RW]

Public Class Methods

new(logger: ::Logger.new(STDOUT), remote_logger: Shift::CircuitBreaker::Adapters::SentryAdapter) click to toggle source

Initializer creates an instance of the service

@param [Object] logger - service to handle internal logging @param [Object] remote_logger - external error logging service eg. Sentry

# File lib/shift/circuit_breaker/circuit_logger.rb, line 23
def initialize(logger: ::Logger.new(STDOUT), remote_logger: Shift::CircuitBreaker::Adapters::SentryAdapter)
  self.logger = logger
  self.remote_logger = remote_logger
end

Public Instance Methods

error(context) click to toggle source

@param [Object] context - contains :circuit_name, :state, :error_message

# File lib/shift/circuit_breaker/circuit_logger.rb, line 29
def error(context)
  message = (ERROR_MESSAGE % context)
  logger.error(message)
  remote_logger.call(message) if remote_logger.respond_to?(:call)
end