class MongodbLogger::RackMiddleware
Public Class Methods
log_attributes_filter=(filter)
click to toggle source
# File lib/mongodb_logger/rack_middleware.rb, line 6 def self.log_attributes_filter=(filter) @@log_attributes_filter = filter end
new(app)
click to toggle source
# File lib/mongodb_logger/rack_middleware.rb, line 10 def initialize(app) @app = app end
Public Instance Methods
call(env)
click to toggle source
# File lib/mongodb_logger/rack_middleware.rb, line 18 def call(env) request = ::Rack::Request.new env path = request.path.split('/') log_attrs = { method: request.request_method, action: (path[2..-1] || []).join('/'), controller: path[1], path: request.path, url: request.url, params: request.params, ip: request_ip(request) } log_attrs = @@log_attributes_filter.call(log_attrs) if @@log_attributes_filter logger.mongoize(log_attrs) do return @app.call(env) end end
request_ip(request)
click to toggle source
# File lib/mongodb_logger/rack_middleware.rb, line 14 def request_ip(request) return request.env["REMOTE_ADDR"] end
Private Instance Methods
logger()
click to toggle source
# File lib/mongodb_logger/rack_middleware.rb, line 40 def logger @logger ||= if defined?(Rails) Rails.logger elsif defined?(LOGGER) LOGGER else MongodbLogger::Logger.new end end