Production Logging with Rails 2.2.2

I'm having an issue with logging when I run my Rails app in production mode:

script/console production Loading production environment (Rails 2.2.2)

Rails.logger

=> #<ActiveSupport::BufferedLogger:0x24e46c8 @auto_flushing=1000, @log=#<File:log/production.log>, @buffer={#<Thread:0x35700 run>=>["My logged message\n"]}, @guard=#<Mutex:0x24c0688>, @level=0>

Rails.logger.error("hello!")

=> "hello!\n"

Rails.logger

=> #<ActiveSupport::BufferedLogger:0x24e46c8 @auto_flushing=1000, @log=#<File:/Users/tom/Sites/buzzsprout/log/production.log>, @buffer= {#<Thread:0x35700 run>=>["Mylogged message\n", "hello!\n"]}, @guard=#<Mutex:0x24c0688>, @level=0>

For some reason, messages are not being written to the log when I use the logger.error or logger.info methods. They appear in the Rails.logger @buffer?

Anyone have any ideas?

Thanks! Tom

Its worth noting that the system logs just fine, it is just my logger messages that get stuck in the buffer. If I run Rails.logger.flush from the console, the messages are written correctly to the production log. Weird.

Its worth noting that the system logs just fine, it is just my logger messages that get stuck in the buffer. If I run Rails.logger.flush from the console, the messages are written correctly to the production log. Weird.

The buffered log only hits disk when its flushed (which occurs either when more than X has been logged or as part of the request cycle), which isn't going to happen by itself when you're running from the console. Not sure what else you can do other than ensure that flush is called at some point.

Fred

Interesting i am having the same issue with Jruby/Tomcat. Nothing is getting logged to localhost-YYYY-MM-DD.log files at all after a period of time.

Is there no way to set the buffer threshold to force a flush on every log ?

Adam

I got my logging to start working by adding the following to the end of my environment.rb file:

Rails.logger.auto_flushing =1

I wonder if there is an issue with Rails 2.2.2 flushing the log buffer?

Thanks, Tom

i can say for sure there is at least with Jruby/Tomcat running Rails. did this only effect you in production ?