class Faraday::Logging::Formatter

Serves as an integration point to customize logging

Constants

DEFAULT_OPTIONS

Public Class Methods

# File lib/faraday/logging/formatter.rb, line 14
def initialize(logger:, options:)
  @logger = logger
  @options = DEFAULT_OPTIONS.merge(options)
  unless %i[debug info warn error fatal].include?(@options[:log_level])
    @options[:log_level] = :info
  end
  @filter = []
end

Public Instance Methods

# File lib/faraday/logging/formatter.rb, line 41
def exception(exc)
  return unless log_errors?

  public_send(log_level) { "error: #{exc.full_message}" }

  log_headers('error', exc.response_headers) if exc.respond_to?(:response_headers) && log_headers?(:error)
  return unless exc.respond_to?(:response_body) && exc.response_body && log_body?(:error)

  log_body('error', exc.response_body)
end
# File lib/faraday/logging/formatter.rb, line 52
def filter(filter_word, filter_replacement)
  @filter.push([filter_word, filter_replacement])
end
# File lib/faraday/logging/formatter.rb, line 25
def request(env)
  public_send(log_level) do
    "request: #{env.method.upcase} #{apply_filters(env.url.to_s)}"
  end

  log_headers('request', env.request_headers) if log_headers?(:request)
  log_body('request', env[:body]) if env[:body] && log_body?(:request)
end
# File lib/faraday/logging/formatter.rb, line 34
def response(env)
  public_send(log_level) { "response: Status #{env.status}" }

  log_headers('response', env.response_headers) if log_headers?(:response)
  log_body('response', env[:body]) if env[:body] && log_body?(:response)
end