2013-08-11 8 views
8

Ich habe von Rails 3.2 auf Rails 4 aktualisiert, indem Sie den Ruby Screencast Guide folgen. Meine Tests ausgeführt werden und der Server startet, aber ich erhalte eine Fehlermeldung, wenn ich eine Anfrage senden:Nicht definierte Methode für Formatter-Fehler nach Rails 4-Upgrade "getaggt"

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' 

Ich habe ich habe den Code angesehen, und es macht keinen Sinn für mich. Es ruft logger.tagged an. Das Objekt hinter der Variablen logger ist kein Logger, sondern ein Formatter Objekt. Das ist merkwürdig.

Irgendeine Idee, was könnte das verursachen? Bisher habe ich:

  • gelöscht meine Gemfile.lock
  • gem update rails
  • bundle install
  • bundle update

in dieser und verschiedenen Ordnungen. Wie kann ich das angehen?

Antwort

11

Verwenden Sie einen Kundenlogger?

Einchecken config/environments/development.rb. Dort wird normalerweise der Logger zugewiesen.

Suchen Sie auch in config/initializers für Logging-bezogene Affen Patches.

Ich verwendete Chris Powell Logger-Patch, und es verursachte einen sehr ähnlichen Fehler.

Wenn Sie diesen Patch verwenden, gibt es eine aktualisierte eine für Rails 4: http://cbpowell.wordpress.com/2013/08/09/beautiful-logging-for-ruby-on-rails-4/

+0

Große Antwort. Wir hatten ein ähnliches Problem mit einem benutzerdefinierten Logger in Config/Initializern. – welbornio

+0

Danke! Ich bin froh, dass es hilfreich war. –

0

Ich hatte auch den gleichen Fehler, bekam es los durch den Logger neu zu initialisieren.

Es wurde eine neue Datei auf config/initializers, nannte es

log_formatting.rb

mit diesem Code:

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" 
} 
Verwandte Themen