config.logger = MyLogger.new(config.log_path)
However, I just could not get this to have any effect! It turns out that this was because I was starting up my server using script/server using mongrel. Using "script/server webrick", or "mongrel_rails start" worked just fine.
I think this is caused by code in the mongrel.rb file that script/server uses which loads just the logging environment (but not my environment) in order to figure out which log file to tail
Loading the environment here causes the RAILS_DEFAULT_LOGGER constant to get set, and thus when my config finally gets loaded when mongrel itself starts up, the config.logger I set gets ignored as the rails init code does nothing if RAILS_DEFAULT_LOGGER is set:
# if the environment has explicitly defined a logger, use it
return if defined?(RAILS_DEFAULT_LOGGER)
The patch on this bug report seems related, but didn't fix my problem.
I'm too much a rails newb to figure out the right way to patch this, hopefully someone with more of a clue will see this blog entry and submit a patch :)