class PerActionLogger::Logger

Public Class Methods

new(app, opts = {}) click to toggle source
Calls superclass method
# File lib/per_action_logger/logger.rb, line 3
def initialize app, opts = {}
  @default_log = Rails.logger

  @per_action_log = Logger.new Rails.root.join('log', "#{opts[:action].parameterize}.log")

  @app = app
  @opts = opts
  @opts[:action] = Array @opts[:action]

  super app
end

Public Instance Methods

call(env) click to toggle source
Calls superclass method
# File lib/per_action_logger/logger.rb, line 15
def call env
  if @opts[:action].include? env['PATH_INFO']
    logfile = @per_action_log
  else
    logfile = @default_log
  end

  ActiveRecord::Base.logger = logfile
  ActionController::Base.logger = logfile
  Rails.logger = logfile

  @logger = logfile

  super
end