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
546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 |
# File 'lib/tina4/middleware.rb', line 546 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 # v3.13.14: dropped the "[RequestLogger]" prefix for format parity # with Python/PHP/Node — the line is just METHOD PATH -> STATUS (Nms). Tina4::Log.info("#{request.method} #{request.path} -> #{response.status_code} (#{elapsed_ms}ms)") [request, response] end |
.before_log(request, response) ⇒ Object
538 539 540 541 542 543 544 |
# File 'lib/tina4/middleware.rb', line 538 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
562 563 564 |
# File 'lib/tina4/middleware.rb', line 562 def reset! @mutex.synchronize { @request_times.clear } end |