Class: Tina4::RequestLoggerMiddleware
- Inherits:
-
Object
- Object
- Tina4::RequestLoggerMiddleware
- Defined in:
- lib/tina4/middleware.rb
Overview
RequestLoggerMiddleware – logs method, path, and elapsed time for every request.
Class Method Summary collapse
Class Method Details
.after_log(request, response) ⇒ Object
248 249 250 251 252 253 254 255 256 257 258 259 260 |
# File 'lib/tina4/middleware.rb', line 248 def after_log(request, response) request_key = "#{request.object_id}" start_time = @mutex.synchronize { @request_times.delete(request_key) } if start_time elapsed_ms = ((Process.clock_gettime(Process::CLOCK_MONOTONIC) - start_time) * 1000).round(3) else elapsed_ms = 0.0 end Tina4::Log.info("[RequestLogger] #{request.method} #{request.path} -> #{response.status_code} (#{elapsed_ms}ms)") [request, response] end |
.before_log(request, response) ⇒ Object
240 241 242 243 244 245 246 |
# File 'lib/tina4/middleware.rb', line 240 def before_log(request, response) request_key = "#{request.object_id}" @mutex.synchronize do @request_times[request_key] = Process.clock_gettime(Process::CLOCK_MONOTONIC) end [request, response] end |
.reset! ⇒ Object
262 263 264 |
# File 'lib/tina4/middleware.rb', line 262 def reset! @mutex.synchronize { @request_times.clear } end |