Forum: Ruby on Rails Production Logging with Rails 2.2.2

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
5f3d52658aafcf0aabe76a5147e8909f?d=identicon&s=25 TomRossi7 (Guest)
on 2009-03-11 21:32
(Received via mailing list)
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
5f3d52658aafcf0aabe76a5147e8909f?d=identicon&s=25 tomrossi7 (Guest)
on 2009-03-11 21:37
(Received via mailing list)
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.
81b61875e41eaa58887543635d556fca?d=identicon&s=25 Frederick Cheung (Guest)
on 2009-03-11 23:58
(Received via mailing list)
On Mar 11, 8:36 pm, tomrossi7 <t...@themolehill.com> wrote:
> 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
F15fdc7cb2e911b3808837f2be244add?d=identicon&s=25 AD (Guest)
on 2009-03-12 01:38
(Received via mailing list)
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
5f3d52658aafcf0aabe76a5147e8909f?d=identicon&s=25 tomrossi7 (Guest)
on 2009-03-12 04:04
(Received via mailing list)
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
F15fdc7cb2e911b3808837f2be244add?d=identicon&s=25 AD (Guest)
on 2009-03-13 04:34
(Received via mailing list)
i can say for sure there is at least with Jruby/Tomcat running Rails.
did this only effect you in production ?
This topic is locked and can not be replied to.