2015-03-14 15 views
5

Nagle moja aplikacja Rails 4.2 nic nie pisze do development.log.Dlaczego Railsy nie piszą do development.log

Absolutnie nic!

Próbowałem sprawdzić poprawność środowiska jest używany, ponowne uruchamianie serwera, sprawdzanie klejnotów, które mogą wchodzić w interakcje z rejestratora, sprawdzanie uprawnień, logger.flush i rake log:clean.

Plik dziennika jest teraz całkowicie pusty i nic nie jest zapisywane.

Running rails s daje:

=> Booting WEBrick 
=> Rails 4.2.0 application starting in development on http://localhost:3000 
=> Run `rails server -h` for more startup options 
=> Ctrl-C to shutdown server 
[2015-03-14 18:49:57] INFO WEBrick 1.3.1 
[2015-03-14 18:49:57] INFO ruby 2.1.5 (2014-11-13) [x86_64-darwin14.0] 
[2015-03-14 18:49:57] INFO WEBrick::HTTPServer#start: pid=3963 port=3000 

Istnieje sporo podobne pytania na StackOverflow, ale nie udzielić odpowiedzi, który pracował w moim przypadku.

Nie mam pojęcia, co spowodowałoby to lub jak systematycznie debugować.

Co należy zrobić?

+0

Co widzisz, gdy robisz 'Szyny s'? – emaillenin

+0

dodał 'rails s' do pytań –

Odpowiedz

15

OK, po wielu okrążeniach w końcu znalazłem winnego.

Prawdopodobnie plik 01.zastępuje config.logger.

Patrz: https://github.com/heroku/rails_stdout_logging/blob/master/lib/rails_stdout_logging/rails3.rb#L7

usunąłem ten klejnot ze środowiska rozwoju (I naprawdę tylko trzeba to w wdrożonej środowiska) i wszystko jest teraz pracuje.

Dzięki @maxd za pomoc w doprowadzeniu mnie do myślenia we właściwym kierunku.

+0

Dziękujemy za opublikowanie rozwiązania. Rozwiązałem mój problem. – Pete

+0

@andy Uratowałeś mojego człowieka życia !!!!! –

1

Myślę, że problem może być spowodowany przez następujące rzeczy:

  1. ustawić na wysokim poziomie dziennika. Sprawdź application.rb i environments\*.rb pliki:

    # Set to :debug to see everything in the log. 
    config.log_level = :error 
    
  2. ustawić niestandardową rejestrowanie. Sprawdź application.rb, environments/*.rb i wszystkie pliki w initializers/*.rb:

    # Use a different logger for distributed setups. 
    config.logger = ActiveSupport::TaggedLogging.new(SyslogLogger.new) 
    

Te dwa kroki powinny pomóc zbadać problem i go naprawić.

+0

dzięki @maxd, mój plik' development.rb' zawiera 'config.log_level =: debug'. Przeszukałem wszystkie pliki dla 'config.logger', a jedynym miejscem, które występuje w mojej aplikacji jest' production.rb', gdzie jest ono komentowane.Próbowałem dodać 'config.logger = ActiveSupport :: TaggedLogging.new (SyslogLogger.new)' do 'development.rb' tylko po to, aby zobaczyć, co się dzieje, i otrzymuję komunikat" NameError: uninitialized constant SyslogLogger' –

0

Jeśli w AWS (lub podobnym) musisz upewnić się, że twój katalog dzienników ma prawo do zapisu.

0

Dodaj następujący wiersz do config/environments/development.rb

config.log_level = :debug 

serwerze restartu

Powiązane problemy