Sha256: a7ccaf2f6e883b71557020903a09b79acc7b681e99abf553c255c4409addd136
Contents?: true
Size: 1.4 KB
Versions: 1
Compression:
Stored size: 1.4 KB
Contents
# frozen_string_literal: true module FinApps module Middleware class CustomLogger < Faraday::Response::Middleware extend Forwardable include FinApps::Utils::ParameterFilter DEFAULT_OPTIONS = {bodies: false}.freeze def initialize(app, logger=nil, options={}) super(app) @logger = logger || begin require 'logger' ::Logger.new(STDOUT) end @options = DEFAULT_OPTIONS.merge(options) end def_delegators :@logger, :debug, :info, :warn, :error, :fatal def call(env) info "##{__method__} => ##{env.method} #{env.url}" debug "##{__method__} => Request Headers: #{dump_headers env.request_headers}" super end def on_complete(env) info "##{__method__} => ##{env.method} #{env.url}" debug "##{__method__} => Response Headers: #{dump_headers env.response_headers}" info "##{__method__} => Response Body: #{dump_body env.body}" if env.body end private def dump_headers(headers) headers.map {|k, v| " #{k}: #{filter_sensitive_header_values(k, v)}" }.to_s end def filter_sensitive_header_values(key, value) case key when 'X-FinApps-Token', 'Authorization' '[REDACTED]' else value.inspect end end def dump_body(body) skip_sensitive_data(body) end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
finapps-2.0.25 | lib/finapps/middleware/response/custom_logger.rb |