Class: Notion::Middleware::Logging

Inherits:
Object
  • Object
show all
Defined in:
lib/notion/middleware/logging.rb

Constant Summary collapse

SENSITIVE =
/authorization|token|secret/i

Instance Method Summary collapse

Constructor Details

#initialize(app, logger:, level: :info) ⇒ Logging

Returns a new instance of Logging.



10
11
12
13
14
# File 'lib/notion/middleware/logging.rb', line 10

def initialize(app, logger:, level: :info)
  @app = app
  @logger = logger
  @level = level
end

Instance Method Details

#call(request) ⇒ Object



16
17
18
19
20
21
22
23
# File 'lib/notion/middleware/logging.rb', line 16

def call(request)
  return @app.call(request) unless @logger

  log(event: "request", method: request.verb, path: request.path, headers: redact(request.headers))
  response = @app.call(request)
  log(event: "response", status: response.status, request_id: response.request_id)
  response
end