Nothing being logged in production.log

Hi,

I was debugging the problem of nothing being written in my production logs (it works fine in development mode), although the application was working fine. On investigating I found out that Rails.logger.auto_flushing was being set to 1000 in production mode.

I upgraded from rails 3.0.3 to 3.0.7 thinking that it might be an issue with that version, but the problem still persists. I have fixed the problem temporarily by adding Rails.logger.auto_flushing =1 in my environment file, but am not able to establish as to why is this happening. Why is auto_flushing being set to 1000 in production mode?

Regards, Amit

Rails.logger.auto_flushing = 1 in production environment file is also throwing an exception.

It seems that the logger is not being initialized, as Rails.logger is being returned as nil, but on console it returns an ActiveSupport::BufferedLogger object. irb(main):001:0> Rails.logger => #<ActiveSupport::BufferedLogger:0xb6729640 @guard=#<Mutex: 0xb6715fa0>, @buffer={}, @auto_flushing=1000, @level=1, @log=#<File:/u/ apps/billbaba/releases/20110423222330/log/production.log>>

Any thoughts......anything I might have messed up....???

Regards, Amit

What happens if you make a new app and run in production mode?

If that is ok then you could go back to earlier versions of your app from your version control system and see at what point the log stopped working.

Alternatively, I believe the only differences between development and production are in environments/development.rb and production.rb (plus database.yml). Compare the two rb files and if nothing is obvious change production.rb so that it becomes more like development.rb until the logger starts working.

Colin

Thanks Colin for the help :slight_smile:

Figured it out, while trying random things. Probably was a permissions issue and was resolved on changing the permissions from 644 to 666; but interestingly no error was being thrown out that passenger was unable to write to log file in the apache error logs.

Interestingly when I still try to inspect the logger on console the auto_flushing is set to 1000 for production mode (1 for development mode): Loading production environment (Rails 3.0.7) irb(main):001:0> Rails.logger => #<ActiveSupport::BufferedLogger:0xb667805c @guard=#<Mutex: 0xb66649a8>, @buffer={}, @auto_flushing=1000, @level=1, @log=#<File:/u/ apps/billbaba/releases/20110425202117/log/production.log>>

But the good news is that the logs are working!

Regards, Amit