Class: Lumberjack::Rails::RequestAttributesMiddleware
- Inherits:
-
Object
- Object
- Lumberjack::Rails::RequestAttributesMiddleware
- Defined in:
- lib/lumberjack/rails/request_attributes_middleware.rb
Overview
This Rack middleware provides a hook for adding attributes from the request onto the Rails.logger context so that they will appear on all log entries for the request.
Instance Method Summary collapse
-
#call(env) ⇒ Array
Process a request through the middleware stack with Lumberjack context.
-
#initialize(app, attributes_block) ⇒ RequestAttributesMiddleware
constructor
A new instance of RequestAttributesMiddleware.
Constructor Details
#initialize(app, attributes_block) ⇒ RequestAttributesMiddleware
Returns a new instance of RequestAttributesMiddleware.
13 14 15 16 17 18 19 20 |
# File 'lib/lumberjack/rails/request_attributes_middleware.rb', line 13 def initialize(app, attributes_block) unless attributes_block.respond_to?(:call) raise ArgumentError.new("attributes_block must be a Proc or callable object") end @app = app @attributes_block = attributes_block end |
Instance Method Details
#call(env) ⇒ Array
Process a request through the middleware stack with Lumberjack context.
26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/lumberjack/rails/request_attributes_middleware.rb', line 26 def call(env) return @app.call(env) if ::Rails.logger.nil? Lumberjack::Rails.logger_context do attributes = @attributes_block.call(ActionDispatch::Request.new(env)) if attributes.is_a?(Hash) ::Rails.logger.tag(attributes) elsif !attributes.nil? warn "RequestAttributesMiddleware attributes_block did not return a Hash, got #{attributes.class.name}" end @app.call(env) end end |