Sha256: 6b9c17f25f3c0c362679e71ac93e6cc3e0a24217215b5a3a017e70875c300906
Contents?: true
Size: 1.19 KB
Versions: 1
Compression:
Stored size: 1.19 KB
Contents
require 'faraday' # @private module FaradayMiddleware # @private class HttpLogger < Faraday::Middleware extend Forwardable def_delegators :@logger, :debug, :info, :warn, :error, :fatal def initialize(app, logger) @app = app @logger = logger end def call(env) start_time = Time.now info { request_info(env) } debug { "Request headers: #{env[:request_headers].inspect}" } @app.call(env).on_complete do end_time = Time.now response_time = end_time - start_time info { response_info(env, response_time) } debug { "Response headers: #{env[:response_headers].inspect}" } debug { "Response body: #{env[:body].delete("\n")}" } end end private def filter(output) output = output.to_s.gsub(/login=[a-zA-Z0-9_]*/, 'login=[LOGIN]') output.to_s.gsub(/psw=[a-zA-Z0-9_]*/, 'psw=[PASSWORD]') end def request_info(env) format('Started %s request to: %s', env[:method].to_s.upcase, filter(env[:url])) end def response_info(env, response_time) format('Response from %s; Status: %d; Time: %.1fms', filter(env[:url]), env[:status], (response_time * 1_000.0)) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
smsc_ru-0.1.0 | lib/faraday_middleware/http_logger.rb |