class HTTP::Features::Logging
HTTP.use(logging: {logger: Logger.new(STDOUT)}).get(“example.com/”)
‘debug`. Be sure to specify the logger when enabling the feature:
logged at `info`, and the headers and bodies of both are logged at
Log requests and responses. Request verb and uri, and Response status are
def initialize(logger: NullLogger.new)
def initialize(logger: NullLogger.new) @logger = logger end
def stringify_headers(headers)
def stringify_headers(headers) headers.map { |name, value| "#{name}: #{value}" }.join("\n") end
def wrap_request(request)
def wrap_request(request) logger.info { "> #{request.verb.to_s.upcase} #{request.uri}" } logger.debug { "#{stringify_headers(request.headers)}\n\n#{request.body.source}" } request end
def wrap_response(response)
def wrap_response(response) logger.info { "< #{response.status}" } logger.debug { "#{stringify_headers(response.headers)}\n\n#{response.body}" } response end