# Ruby's Logger vs ActiveRecord: no more Logger data output

**URL:** <https://www.ruby-forum.com/t/rubys-logger-vs-activerecord-no-more-logger-data-output/98069>\
**Category:** Ruby\
**Created:** [July 12, 2006, 12:43pm UTC](https://www.ruby-forum.com/t/rubys-logger-vs-activerecord-no-more-logger-data-output/98069 "2006-07-12T12:43:09Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![Georges\_Ko](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/c57346/32.png) [@Georges\_Ko](https://www.ruby-forum.com/u/Georges_Ko)\
**Post date:** [July 12, 2006, 12:43pm UTC](https://www.ruby-forum.com/t/rubys-logger-vs-activerecord-no-more-logger-data-output/98069/1 "2006-07-12T12:43:09Z")

</div>

Hi,

I’m writing an application that uses both Ruby’s Logger and  
ActiveRecord, but ActiveRecord seems to break Ruby’s Logger, as  
the Logger data (date, level, etc…) is not output anymore.

Below is an example:

$ cat testlog.rb  
require “logger”  
require “rubygems”  
require\_gem “activerecord”

log = Logger.new(STDOUT)  
log.level = Logger::DEBUG

log.info(“Hello, world!”)  
$ ruby testlog.rb  
Hello, world!

versus

$ ruby testlog2.rb  
require “logger”  
require “rubygems”  
######### require\_gem “activerecord”

log = Logger.new(STDOUT)  
log.level = Logger::DEBUG

log.info(“Hello, world!”)

$ ruby testlog2.rb  
I, [2006-07-12T18:26:13.556000 #4228] INFO – : Hello, world!

To make it normal, I have to load “logger” after require\_gem  
“activerecord” (with warning messages output)…

What do I miss?

Georges

---

<div class="post-metadata">

**Author:** ![Georges\_Ko](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/c57346/32.png) [@Georges\_Ko](https://www.ruby-forum.com/u/Georges_Ko)\
**Post date:** [July 12, 2006, 12:59pm UTC](https://www.ruby-forum.com/t/rubys-logger-vs-activerecord-no-more-logger-data-output/98069/2 "2006-07-12T12:59:00Z")

</div>

> I’m writing an application that uses both Ruby’s Logger and  
> ActiveRecord, but ActiveRecord seems to break Ruby’s Logger, as  
> the Logger data (date, level, etc…) is not output anymore.

Hi George

Rails’ ActiveSupport overrides the Logger#format\_message method. To  
get back to the normal log formatting, you can use something like this  
in you script.

class Logger  
private

# Rails overrides this method so that it can customize the format

# of it’s logs.

def format\_message(\*args)  
old\_format\_message(\*args)  
end  
end

Which is a bit hacky maybe, but it’s working for me at the moment.

Hope this helps.

---

<div class="post-metadata">

**Author:** ![Georges\_Ko](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/c57346/32.png) [@Georges\_Ko](https://www.ruby-forum.com/u/Georges_Ko)\
**Post date:** [July 12, 2006, 10:46pm UTC](https://www.ruby-forum.com/t/rubys-logger-vs-activerecord-no-more-logger-data-output/98069/3 "2006-07-12T22:46:43Z")

</div>

> 

Nick,  
Funny, I was just having this same problem with Logger and ActiveRecord.  
I  
can’t seem to get your solution to work.

This script:

require ‘logger’  
require ‘rubygems’  
require\_gem ‘activerecord’

class Logger  
private

# Rails overrides this method so that it can customize the format

# of it’s logs.

def format\_message(\*args)  
old\_format\_message(\*args)  
end  
end

log = Logger.new(STDERR)  
log.info(“Hello!”)

Throws this error:

/home/neilk/bin/loggertest.rb:14:in `format_message': undefined method`old\_format\_message’ for #Logger:0x489cc8 (NoMethodError)  
from /ropt/local/lib/ruby/1.8/logger.rb:320:in `add' from /ropt/local/lib/ruby/1.8/logger.rb:372:in`info’  
from /home/neilk/bin/loggertest.rb:21

What am I missing?

---

<div class="post-metadata">

**Author:** ![Georges\_Ko](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/c57346/32.png) [@Georges\_Ko](https://www.ruby-forum.com/u/Georges_Ko)\
**Post date:** [July 13, 2006, 6:01am UTC](https://www.ruby-forum.com/t/rubys-logger-vs-activerecord-no-more-logger-data-output/98069/4 "2006-07-13T06:01:46Z")

</div>

Georges Ko wrote:

> versus
> 
> $ ruby testlog2.rb  
> I, [2006-07-12T18:26:13.556000 #4228] INFO – : Hello, world!
> 
> To make it normal, I have to load “logger” after require\_gem  
> “activerecord” (with warning messages output)…
> 
> What do I miss?

I think Rails defines a class called Logger which must be clobbering  
the standard one.

Gavin

---

<div class="post-metadata">

**Author:** ![Georges\_Ko](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/c57346/32.png) [@Georges\_Ko](https://www.ruby-forum.com/u/Georges_Ko)\
**Post date:** [July 13, 2006, 8:28pm UTC](https://www.ruby-forum.com/t/rubys-logger-vs-activerecord-no-more-logger-data-output/98069/5 "2006-07-13T20:28:41Z")

</div>

Hi, Nick

> Funny, I was just having this same problem with Logger and ActiveRecord. I
> 
> > can’t seem to get your solution to work.
> 
> Have a look at clean\_logger.rb in active support. In my copy of rails  
> (latest stable branch) it does this:
> 
> alias old\_format\_message format\_message
> 
> Which is what makes my example work.

An old version of rails was the problem – I was testing on a machine  
that  
version 1.0.0. Works perfectly on machine with 1.1.x rails.

Thanks!

---

<div class="post-metadata">

**Author:** ![Georges\_Ko](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/c57346/32.png) [@Georges\_Ko](https://www.ruby-forum.com/u/Georges_Ko)\
**Post date:** [July 13, 2006, 1:50am UTC](https://www.ruby-forum.com/t/rubys-logger-vs-activerecord-no-more-logger-data-output/98069/6 "2006-07-13T01:50:48Z")

</div>

> Funny, I was just having this same problem with Logger and ActiveRecord. I  
> can’t seem to get your solution to work.

Have a look at clean\_logger.rb in active support. In my copy of rails  
(latest stable branch) it does this:

alias old\_format\_message format\_message

Which is what makes my example work.

---

<div class="post-metadata">

**Author:** ![Georges\_Ko](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/c57346/32.png) [@Georges\_Ko](https://www.ruby-forum.com/u/Georges_Ko)\
**Post date:** [July 26, 2006, 3:43pm UTC](https://www.ruby-forum.com/t/rubys-logger-vs-activerecord-no-more-logger-data-output/98069/7 "2006-07-26T15:43:35Z")

</div>

“Nick Dainty” [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) writes:

> Have a look at clean\_logger.rb in active support. In my copy of rails  
> (latest stable branch) it does this:
> 
> alias old\_format\_message format\_message

OK, thanks!

Georges
