Неопределенный метод Formatter для Log4r в RAILS 4.0

Я получаю эту ошибку после обновления Rails с 3.1.2 до 4.0. При запуске моего сервера с рельсами я застрял со следующей ошибкой

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)

Я был на сайте Log4r, но не получил никакой информации об ошибке при обновлении Rails.

Кто-нибудь есть идеи, откуда эта ошибка. Спасибо!

1 ответ

Решение

Метод formatter не определено на Log4r::Logger, но на Log4r::FileOutputter, Поэтому я удивлен, что сработало до обновления Rails. Возможно, что изменилось между различными версиями Log4r.

Пожалуйста, попробуйте следующее (с измененными именами файлов и шаблонами):

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]

Добавить этот код в config/application.rb или в новый файл, как config/initializers/logger.rb

Другие вопросы по тегам