Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Undefined Method Formatter for Log4r in RAILS 4.0

I am getting this error after upgrading Rails from 3.1.2 to 4.0. When launching my server with rails s I got stuck with the following error

C:/ruby-2.0.0/lib/ruby/gems/2.0.0/gems/railties-4.0.0/lib/rails/commands/server.rb:78:in `start': undefined method `formatter' for #<Log4r::Logger:0x26dd908> (NoMethodError)

I have been on the Log4r site but haven't got any infor;ation about a bug when upgrading Rails.

Does anyone have any idea where this bug comes from. Thank you!

like image 852
Pol0nium Avatar asked Sep 20 '13 15:09

Pol0nium


1 Answers

The method formatter is not defined on Log4r::Logger, but on Log4r::FileOutputter. Therefore I am surprised that is worked before the Rails update. Perhaps that changed between different versions of Log4r.

Please try the following (with adjusted filenames and patters):

require 'log4r'
outputter = Log4r::FileOutputter.new('log4r', filename: 'foobar.log')
outputter.formatter = Log4r::PatternFormatter.new(
  date_pattern: "%FT%T.000Z", pattern: "%d [%l] %m"
)

logger = Log4r::Logger.new('log4r')
logger.outputters = [outputter]

Add this code to config/application.rb or to a new file like config/initializers/logger.rb

like image 61
spickermann Avatar answered Oct 24 '22 10:10

spickermann