Module: CentralLogger::Filter

Defined in:
lib/central_logger/filter.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(base) ⇒ Object



3
4
5
# File 'lib/central_logger/filter.rb', line 3

def self.included(base)
  base.class_eval { around_filter :enable_central_logger }
end

Instance Method Details

#enable_central_loggerObject



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/central_logger/filter.rb', line 7

def enable_central_logger
  return yield unless Rails.logger.respond_to?(:mongoize)

  # make sure the controller knows how to filter its parameters (Rails 3, 2, respectively)
  f_params = case
               when request.respond_to?(:filtered_parameters) then request.filtered_parameters
               when respond_to?(:filter_parameters) then filter_parameters(params)
               else params
             end
  Rails.logger.mongoize({
    :action         => action_name,
    :controller     => controller_name,
    :path           => request.path,
    :url            => request.url,
    :params         => f_params,
    :ip             => request.remote_ip
  }) { yield }
end