class Shift::Api::Core::Middleware::Logger
Faraday middleware to log requests and responses with request ids to a given logger. The logger must support the “info” method such as active support logger
Attributes
app[RW]
formatter[RW]
id_generator[RW]
logger[RW]
Public Class Methods
new(app, logger:, id_generator: ::Shift::Api::Core::RequestId, formatter: ::Shift::Api::Core::Formatters::Logger)
click to toggle source
# File lib/shift/api/core/middleware/logger.rb, line 12 def initialize(app, logger:, id_generator: ::Shift::Api::Core::RequestId, formatter: ::Shift::Api::Core::Formatters::Logger) self.app = app self.logger = logger self.id_generator = id_generator self.formatter = formatter end
Public Instance Methods
call(env)
click to toggle source
Logs the request and response to the logger @param [Faraday::Env] env The environment from faraday
# File lib/shift/api/core/middleware/logger.rb, line 21 def call(env) request_id = id_generator.call logger.info formatter.message_from_request_body(env, request_id) app.call(env).on_complete do |env| logger.info formatter.message_from_response_body(env, request_id) end end