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!
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
来源:https://stackoverflow.com/questions/18920952/undefined-method-formatter-for-log4r-in-rails-4-0