X-Git-Url: https://git.adam-barratt.org.uk/?a=blobdiff_plain;f=3rdparty%2Fmodules%2Faviator%2Ffeature%2Ffaraday%2Fresponse%2Flogger.rb;fp=3rdparty%2Fmodules%2Faviator%2Ffeature%2Ffaraday%2Fresponse%2Flogger.rb;h=cab7f1b7c2d1fcb774641f9658b52abd3acc25f3;hb=b7626cbcbb2fb8e7ce3dc5ac60e80a981175f9d3;hp=0000000000000000000000000000000000000000;hpb=8132e6bb1199463f5e334326659c974d4772b3e3;p=mirror%2Fdsa-puppet.git diff --git a/3rdparty/modules/aviator/feature/faraday/response/logger.rb b/3rdparty/modules/aviator/feature/faraday/response/logger.rb new file mode 100644 index 000000000..cab7f1b7c --- /dev/null +++ b/3rdparty/modules/aviator/feature/faraday/response/logger.rb @@ -0,0 +1,34 @@ +require 'forwardable' + +module Faraday + class Response::Logger < Response::Middleware + extend Forwardable + + def initialize(app, logger = nil) + super(app) + @logger = logger || begin + require 'logger' + ::Logger.new(STDOUT) + end + end + + def_delegators :@logger, :debug, :info, :warn, :error, :fatal + + def call(env) + info "#{env.method} #{env.url.to_s}" + debug('request') { dump_headers env.request_headers } + super + end + + def on_complete(env) + info('Status') { env.status.to_s } + debug('response') { dump_headers env.response_headers } + end + + private + + def dump_headers(headers) + headers.map { |k, v| "#{k}: #{v.inspect}" }.join("\n") + end + end +end