Class: GovDelivery::TMS::Logger
- Inherits:
-
Faraday::Response::Middleware
- Object
- Faraday::Response::Middleware
- GovDelivery::TMS::Logger
- Extended by:
- Forwardable
- Defined in:
- lib/govdelivery/tms/logger.rb
Overview
:nodoc:
Instance Method Summary collapse
- #call(env) ⇒ Object
-
#initialize(app, logger = nil) ⇒ Logger
constructor
A new instance of Logger.
Constructor Details
#initialize(app, logger = nil) ⇒ Logger
Returns a new instance of Logger.
5 6 7 8 9 10 11 |
# File 'lib/govdelivery/tms/logger.rb', line 5 def initialize(app, logger = nil) super(app) @logger = logger || begin require 'logger' ::Logger.new(STDOUT) end end |
Instance Method Details
#call(env) ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/govdelivery/tms/logger.rb', line 15 def call(env) debug "performing #{env[:method].to_s.upcase.ljust(7)} #{env[:url]}" start = Time.now # In order to log request duration in a threadsafe way, `start` must be a local variable instead of instance variable. @app.call(env).on_complete do |environment| on_complete(environment) log_stuff(start, environment) end end |