Class: Attune::JsonLogger
- Inherits:
-
Faraday::Middleware
- Object
- Faraday::Middleware
- Attune::JsonLogger
- Defined in:
- lib/attune/json_logger.rb
Instance Method Summary collapse
- #call(env) ⇒ Object
-
#initialize(app, logger = nil) ⇒ JsonLogger
constructor
A new instance of JsonLogger.
- #log(data) ⇒ Object
Constructor Details
#initialize(app, logger = nil) ⇒ JsonLogger
Returns a new instance of JsonLogger.
7 8 9 10 |
# File 'lib/attune/json_logger.rb', line 7 def initialize app, logger=nil super(app) @logger = logger || Logger.new(STDERR) end |
Instance Method Details
#call(env) ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/attune/json_logger.rb', line 11 def call(env) time = (Time.now.to_f * 1000).to_i response = nil elapsed_time = Benchmark.realtime do response = @app.call(env) end log( ref: nil, v: 1, protocol: env[:url].scheme, host: env[:url].host, path: env[:url].path, t: time, r_id: SecureRandom.uuid, status: response.status, ua: env[:request_headers]['User-Agent'], method: env[:method], perf: { total: elapsed_time * 1000 } ) response end |
#log(data) ⇒ Object
34 35 36 |
# File 'lib/attune/json_logger.rb', line 34 def log(data) @logger.info JSON.dump(data) end |