Class: HTTP::Features::Logging
- Inherits:
-
HTTP::Feature
- Object
- HTTP::Feature
- HTTP::Features::Logging
- Defined in:
- lib/http/features/logging.rb
Overview
Log requests and responses. Request verb and uri, and Response status are
logged at info, and the headers and bodies of both are logged at
debug. Be sure to specify the logger when enabling the feature:
HTTP.use(logging: Logger.new(STDOUT)).get("https://example.com/")
Defined Under Namespace
Classes: NullLogger
Instance Attribute Summary collapse
-
#logger ⇒ Object
readonly
Returns the value of attribute logger.
Instance Method Summary collapse
-
#initialize(logger: NullLogger.new) ⇒ Logging
constructor
A new instance of Logging.
- #wrap_request(request) ⇒ Object
- #wrap_response(response) ⇒ Object
Methods inherited from HTTP::Feature
Constructor Details
#initialize(logger: NullLogger.new) ⇒ Logging
Returns a new instance of Logging.
28 29 30 31 |
# File 'lib/http/features/logging.rb', line 28 def initialize(logger: NullLogger.new) super() @logger = logger end |
Instance Attribute Details
#logger ⇒ Object (readonly)
Returns the value of attribute logger.
26 27 28 |
# File 'lib/http/features/logging.rb', line 26 def logger @logger end |
Instance Method Details
#wrap_request(request) ⇒ Object
33 34 35 36 37 38 |
# File 'lib/http/features/logging.rb', line 33 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 |
#wrap_response(response) ⇒ Object
40 41 42 43 44 45 |
# File 'lib/http/features/logging.rb', line 40 def wrap_response(response) logger.info { "< #{response.status}" } logger.debug { "#{stringify_headers(response.headers)}\n\n#{response.body}" } response end |