Undefined Method Formatter for Log4r in RAILS 4.0

℡╲_俬逩灬. 提交于 2019-12-07 05:49:21

问题


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!


回答1:


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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!