Class: RequestLogger

Inherits:
Object
  • Object
show all
Defined in:
app/middleware/request_logger.rb

Overview

Log request and response details for monitoring and high-level profiling.

Returns a JSON parseable log entry like: [INFO] [RequestLogger] “status_message”:“OK”,“duration_ms”:935,“client_ip”:“172.21.43.210”, “request_id”:“9fd18098-dea3-46f0-83c8-c41852441db3”,“tags”:, “@timestamp”:“2026-02-12T12:10:50.284+00:00”

Instance Method Summary collapse

Constructor Details

#initialize(app, log_level: :info, environment_context: nil) ⇒ RequestLogger

Returns a new instance of RequestLogger.



14
15
16
17
18
# File 'app/middleware/request_logger.rb', line 14

def initialize(app, log_level: :info, environment_context: nil)
  @app = app
  @log_level = log_level
  @environment_context = environment_context
end

Instance Method Details

#call(env) ⇒ Object



20
21
22
23
24
25
26
27
# File 'app/middleware/request_logger.rb', line 20

def call(env)
  response, elapsed_ms = elapsed_milliseconds { @app.call(env) }

  request = ActionDispatch::Request.new(env)
  log_request(request, response, elapsed_ms)

  response
end