class Ashikawa::Core::MinimalLogger
A more minimal logger as replacement for the very chatty Faraday logger
Attributes
Should HTTP headers be logged
@api public @return [Boolean] If the headers will be logged or not. Defaults to ‘false`
The logger to be used
@api public @return [Logger] The configured logger
Public Class Methods
Initialize the middleware
@api public @param [Faraday::Middleware] app The middleware to nest this one in @param [Logger] logger The logger to be used @option options [Boolean] :debug_headers Should the headers be logged. Defaults to ‘false`
# File lib/ashikawa-core/minimal_logger.rb, line 27 def initialize(app, logger, options = {}) super(app) @logger = logger @debug_headers = options.fetch(:debug_headers) { false } end
Public Instance Methods
Calls the this middleware and passes on to ‘super`
@api public @param [Faraday::Env] env The current env object
# File lib/ashikawa-core/minimal_logger.rb, line 37 def call(env) logger.debug('request') { "#{env.method.upcase} #{env.url}#{dump_headers(env.request_headers)}" } super end
The callback when the request was completed
@api public @param [Faraday::Env] env The current env object
# File lib/ashikawa-core/minimal_logger.rb, line 46 def on_complete(env) logger.debug('response') { "#{env.method.upcase} #{env.url} #{env.status}#{dump_headers(env.response_headers)}" } end
Private Instance Methods
Creates a one-liner out of headers
@api private @params [Hash] headers A headers hash
# File lib/ashikawa-core/minimal_logger.rb, line 56 def dump_headers(headers) " #{headers.map { |field_name, field_value| "#{field_name}: #{field_value.inspect}" }.join(' ')}" if debug_headers end