2013-08-11 2 views
8

루비 스크린 캐스트 가이드를 따라 레일스 3.2에서 레일 4로 업그레이드했습니다. 내 테스트를 실행하는 서버를 시작, 아직 내가 요청을 보낼 때 오류가 나타날 수레일 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' 

내가 코드를 살펴 보았다가, 그리고 나를 위해 이해가되지 않습니다. 전화는 logger.tagged입니다. logger 변수 뒤에있는 객체는 로거가 아니지만 Formatter 객체입니다. 이건 이상해.

어떤 원인 일 수 있습니까? 지금까지 내가 :

  • Gemfile.lock
  • gem update rails
  • bundle install
  • bundle update

이 다른 주문을 삭제. 어떻게 접근 할 수 있습니까?

답변

11

고객 로거를 사용하고 있습니까?

체크인 : config/environments/development.rb. 로거가 일반적으로 할당됩니다.

또한 로깅 관련 원숭이 패치는 config/initializers을 참조하십시오.

Chris Powell의 로거 패치를 사용하고 있는데 이는 매우 유사한 오류를 일으켰습니다.

해당 패치를 사용하는 경우는 레일 4 업데이트 하나있다 : http://cbpowell.wordpress.com/2013/08/09/beautiful-logging-for-ruby-on-rails-4/

+0

멋진 대답을. config/initializers에서 사용자 정의 로거와 비슷한 문제가있었습니다. – welbornio

+0

감사! 그것이 도움이 되었기 때문에 다행. –

0

또한, 같은 오류가 발생한 로거를 다시 초기화하여 그것을 제거되었다.

는 설정/초기화에 새 파일을 추가가이 코드

을 log_formatting.rb 전화 :

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