Class: Lepus::Consumers::Middlewares::ExceptionLogger

Inherits:
Middleware
  • Object
show all
Defined in:
lib/lepus/consumers/middlewares/exception_logger.rb

Overview

A middleware that logs exceptions raised by downstream middleware/consumers. Default logger is Lepus.logger.

Instance Method Summary collapse

Constructor Details

#initialize(logger: Lepus.logger) ⇒ ExceptionLogger

Returns a new instance of ExceptionLogger.

Parameters:

  • opts (Hash)

    The options for the middleware.



11
12
13
14
15
# File 'lib/lepus/consumers/middlewares/exception_logger.rb', line 11

def initialize(logger: Lepus.logger, **)
  super

  @logger = logger
end

Instance Method Details

#call(message, app) ⇒ Object



17
18
19
20
21
22
23
# File 'lib/lepus/consumers/middlewares/exception_logger.rb', line 17

def call(message, app)
  app.call(message)
rescue => err
  # Log error message; let outer layers decide how to handle the exception
  @logger.error(err.message)
  raise err
end