2013-08-11 15 views
8

Zaktualizowałem z Rails 3.2 do Rails 4, wykonując przewodnik po Ruby Screencast. Moje testy są uruchomione, a serwer zaczyna, ale otrzymuję błąd, gdy mogę wysłać żądanie:Niezdefiniowana metoda "oznaczono" dla błędu Formatter po aktualizacji Rails 4

ERROR NoMethodError: undefined method `tagged' for #<Formatter:0x000000057f5dc8> 

/home/mahoni/.rvm/gems/ruby-2.0.0-p195/gems/activesupport-4.0.0/lib/active_support/tagged_logging.rb:67:in `tagged' 
/home/mahoni/.rvm/gems/ruby-2.0.0-p195/gems/railties-4.0.0/lib/rails/rack/logger.rb:21:in `call' 
/home/mahoni/.rvm/gems/ruby-2.0.0-p195/gems/quiet_assets-1.0.2/lib/quiet_assets.rb:18:in `call_with_quiet_assets' 
/home/mahoni/.rvm/gems/ruby-2.0.0-p195/gems/actionpack-4.0.0/lib/action_dispatch/middleware/request_id.rb:21:in `call' 
/home/mahoni/.rvm/gems/ruby-2.0.0-p195/gems/rack-1.5.2/lib/rack/methodoverride.rb:21:in `call' 
/home/mahoni/.rvm/gems/ruby-2.0.0-p195/gems/rack-1.5.2/lib/rack/runtime.rb:17:in `call' 
/home/mahoni/.rvm/gems/ruby-2.0.0-p195/gems/activesupport-4.0.0/lib/active_support/cache/strategy/local_cache.rb:83:in `call' 
/home/mahoni/.rvm/gems/ruby-2.0.0-p195/gems/actionpack-4.0.0/lib/action_dispatch/middleware/static.rb:64:in `call' 
/home/mahoni/.rvm/gems/ruby-2.0.0-p195/gems/railties-4.0.0/lib/rails/engine.rb:511:in `call' 
/home/mahoni/.rvm/gems/ruby-2.0.0-p195/gems/railties-4.0.0/lib/rails/application.rb:97:in `call' 
/home/mahoni/.rvm/gems/ruby-2.0.0-p195/gems/rack-1.5.2/lib/rack/lock.rb:17:in `call' 
/home/mahoni/.rvm/gems/ruby-2.0.0-p195/gems/rack-1.5.2/lib/rack/content_length.rb:14:in `call' 
/home/mahoni/.rvm/gems/ruby-2.0.0-p195/gems/rack-1.5.2/lib/rack/handler/webrick.rb:60:in `service' 
/home/mahoni/.rvm/rubies/ruby-2.0.0-p195/lib/ruby/2.0.0/webrick/httpserver.rb:138:in `service' 
/home/mahoni/.rvm/rubies/ruby-2.0.0-p195/lib/ruby/2.0.0/webrick/httpserver.rb:94:in `run' 
/home/mahoni/.rvm/rubies/ruby-2.0.0-p195/lib/ruby/2.0.0/webrick/server.rb:295:in `block in start_thread' 

mam patrzę na kod, a to nie ma sensu dla mnie. To wywołuje logger.tagged. Obiekt znajdujący się za zmienną logger nie jest obiektem rejestrującym, ale obiektem Formatter. To jest dziwne.

Każdy pomysł, co może spowodować? Do tej pory:

  • usunięte moje Gemfile.lock
  • gem update rails
  • bundle install
  • bundle update

w tym i różne rozkazy. Jak mogę się do tego zbliżyć?

Odpowiedz

11

Czy używasz rejestratora klienta?

Sprawdź w config/environments/development.rb. Właśnie tam zazwyczaj przydzielany jest rejestrator.

Zobacz także config/initializers dla łatek związanych z logowaniem.

Użyłem łatki rejestratora Chris Powell i spowodował bardzo podobny błąd.

Jeśli używasz tej poprawki jest zaktualizowany jeden dla Rails 4: http://cbpowell.wordpress.com/2013/08/09/beautiful-logging-for-ruby-on-rails-4/

+0

Wielką odpowiedź. Mieliśmy podobny problem z niestandardowym rejestratorem w konfiguracji/inicjalizatorach. – welbornio

+0

Dzięki! Cieszę się, że to było pomocne. –

0

miałem również ten sam błąd, pozbył się go poprzez ponowne inicjowanie rejestratora.

Dodano nowy plik na config/inicjalizatorów, nazwał go log_formatting.rb

z tym kodem:

Rails.logger = ActiveSupport::Logger.new "log/mylog.log" 
Rails.logger.formatter = proc{|severity,datetime,progname,msg| 
    "[#{datetime.strftime("%Y-%m-%d %H:%M:%S")}] [#{severity}]: #{msg}\n" 
} 
Powiązane problemy