2011-07-24 5 views
5

Chciałem zobaczyć zawartość mojego loga aplikacji na heroku.com, więc poszedłem za this excellent advice i mam całą zawartość logu. Jednak teraz jestem ciekaw, aby dowiedzieć się, gdzie jest mój plik dziennika rzeczywiście jest jako „log/production.log” wydaje się być pusty:Lokalizacja pliku Heroku.log

C:\>heroku console 
Ruby console for ajpbrevx.heroku.com 
>> files = Dir.glob("*") 
=> ["public", "tmp", "spec", "Rakefile", "doc", "config.ru", "app", "config", "lib", "README", "Gemfile.lock", "vendor", "script", "Gemfile", "log"] 
>> files = Dir.glob("log/*") 
=> ["log/production.log"] 
>> log_file = File.open("log/production.log", "r") 
=> #<File:log/production.log> 
>> log_file.each_line { |line| puts line } 
=> #<File:log/production.log> 
>> log_file.lstat.size 
=> 0 

wiem, że mam pełny plik dziennika jako kiedy zrobić:

heroku logs 

wszystko jest na liście, więc dlaczego log/production.log nic nie zawiera? Czy powinienem zgłosić bilet na numer Heroku?

Dzięki. Pozdrawiam, James

Odpowiedz

4

Rejestrowanie dodatków heroku: rozwinięty już nie istnieje. Niektóre kamienie maskować wyjście rejestratora też, więc na odpowiedzi roboczych zobaczyć this slightly more recent stack overflow post

Podsumowując, najpiękniejszy rozwiązaniem jest dodanie następujących do pliku config/production.rb:

config.logger = Logger.new(STDOUT) 
config.logger.level = Logger.const_get((ENV["LOG_LEVEL"] || "INFO").upcase) 

Następnie, po” ve pchnął to do heroku, można zobaczyć wszystkie rejestrowanie, jak to się dzieje z następującym poleceniem:

heroku logs --tail 
+0

to jest dokładnie to, czego szukałem. dzięki. –

7

Logi Heroku są przechowywane przy użyciu logplex. Możesz przeczytać więcej o tym, jak działa system rejestrowania, ale pod tym pytaniem nie piszą do Twojego pliku production.log, ponieważ Heoku chce, aby jego baza kodowa była jak najmniejsza.

Tak więc, jeśli chcesz wyświetlić wszystkie swoje dzienniki, musisz drain je do zewnętrznego źródła.

Ale obserwując swoją aplikację i debugowania można odczytać maksymalnie 500 linii lub --tail dzienników takich jak:

heroku logs -n 500 
heroku addons:upgrade logging:expanded 
heroku logs --tail 
+0

Nice. Dziękuję Codeglot. n.b. innym, będziesz musiał "zweryfikować" swoje konto Heroku, aby uzyskać (bezpłatny) rozszerzony dodatek do logowania, wprowadzając dane swojej karty kredytowej. Heroku nie obciąży cię jednak żadnymi pieniędzmi. – AJP

+1

ktoś wie zaktualizowaną odpowiedź na to? dodatek już nie istnieje i potrzebuję zobaczyć dane wyjściowe development/production.log do debugowania mojego wdrożenia! – MBHNYC

+0

@MBHNYC zobacz powyżej odpowiedź użytkownika208769. – AJP

0

bym też zalecamy użycie Loggly (znajdziesz go w sekcji dodać dodatki na Heroku) - Jestem niedawnym użytkownikiem Heroku, więc nie wiem, czy Loggly został dodany po tych postach, ale zdecydowanie jest to znacznie snazzier, bardziej użyteczny, alternatywa dla logów rurociągów za pośrednictwem konsoli.