Logging - using a different log for one method


#1

Hi there,

I’m wondering if there’s a way to have any log statements generated
from a specific method on a model get logged into a separate file from
the normal development/production log files?

i.e. I want the whole app to log as normal, apart from the
Sprinter.run_often method, which I’d like to log to
sprinter_running.log

Cheers,

Tim.


#2

I guess it would be something like

sprinter_log = BufferedLogger.new(“sprinter_runner.log”)

sprinter_log.log(‘yay I’m logging’)


#3

Hi Ivan,

Thanks - I thought I was probably missing a detail. That will put my
own log statements into a new log. But what I’m aiming for is to get
AR generated log statements into the separate log file also. Without
interfering with whatever other code is running concurrently.

Cheers,

Tim.


#4

Monkey patch ActiveRecord::Base or your base class and override logger

def logger
@logger = BufferedLogger.new(‘name’)

end