Class: BookingSync::API::Middleware::Logger
- Inherits:
-
Faraday::Middleware
- Object
- Faraday::Middleware
- BookingSync::API::Middleware::Logger
- Extended by:
- Forwardable
- Defined in:
- lib/bookingsync/api/middleware/logger.rb
Overview
Provides logger for request and responses made by API Client. JSON data is displayed in an eye-friendly format. User can provide his own logger in BookingSync::API::Client.new
Log Levels
INFO - logged are only request method and URL.
DEBUG - logged are headers and bodies of requests and responses.
Instance Method Summary collapse
- #call(env) ⇒ Object
-
#initialize(app, logger) ⇒ Logger
constructor
A new instance of Logger.
Constructor Details
#initialize(app, logger) ⇒ Logger
Returns a new instance of Logger.
14 15 16 17 |
# File 'lib/bookingsync/api/middleware/logger.rb', line 14 def initialize(app, logger) super(app) @logger = logger end |
Instance Method Details
#call(env) ⇒ Object
21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/bookingsync/api/middleware/logger.rb', line 21 def call(env) info "Request #{env.method.upcase} #{env.url.to_s}" debug("Request headers") { dump_headers env.request_headers } debug("Request body") { dump_body env.body } @app.call(env).tap do |response| info "Response X-Request-Id: #{env.response_headers['X-Request-Id']} #{env.method.upcase} #{env.url.to_s}" debug("Response headers") { dump_headers response.env.response_headers } debug("Response status") { response.env.status } debug("Response body") { dump_body response.env.body } end end |