Gdzie na zawsze przechowuje dane wyjściowe console.log?


105

Zainstalowałem na zawsze i używam go, uważając to za dość zabawne.

Ale zdałem sobie sprawę, że dzienniki są umieszczone gdzie indziej. Czy są jakieś wskazówki?

Odpowiedzi:


135

Forever przyjmuje opcje wiersza poleceń do wyjścia:

-l  LOGFILE      Logs the forever output to LOGFILE
-o  OUTFILE      Logs stdout from child script to OUTFILE
-e  ERRFILE      Logs stderr from child script to ERRFILE

Na przykład:

forever start -o out.log -e err.log my-script.js

Więcej informacji znajdziesz tutaj


7
jaka jest domyślna ścieżka, jeśli nie określę żadnych parametrów, ale po prostu użyję podobnego forever myapp? dzięki!
AGamePlayer

3
Nie widzę tego udokumentowanego - myślę, że zmieniło się z czasem. Widzę stare logi w folderze ~ / .forever. Ale zaktualizowałem bardzo niedawno i przynajmniej na moim Macu, jeśli nie określę nazwy pliku dziennika, zapisuje on console.log do terminala.
bryanmac

1
-a jest również potrzebne jako opcja, jeśli pliki już istnieją. forever -a -o out.log -e err.log my-
script.js

2
Jaka jest różnica między LOGFILE a OUTFILE? Wydaje mi się, że zawierają dokładnie te same informacje!
Dominic

3
@Dominic LOGFILE zawiera wszystkie dane wyjściowe, w tym dane wyjściowe z procesu wiecznego, OUTFILE zawiera tylko standardowe wyjście ze skryptu podrzędnego.
Joseph238

81

Forever domyślnie umieszcza logi w losowym pliku w ~/.forever/folderze.

Uruchom, forever listaby zobaczyć uruchomione procesy i odpowiadający im plik dziennika.

Przykładowe dane wyjściowe

>>> forever list
info:    Forever processes running
data:        uid  command       script forever pid  logfile                         uptime
data:    [0] 6n71 /usr/bin/node app.js 2233    2239 /home/vagrant/.forever/6n71.log 0:0:0:1.590

Jednak prawdopodobnie najlepiej jest to określić, -ljak wspomniał bryanmac.


1
Nie zawsze jest to plik losowy. Jeśli podczas uruchamiania określono identyfikator użytkownika z flagą --uid, utworzy on plik dziennika przy użyciu podanego identyfikatora użytkownika.
ddelrio1986


12

wypróbuj polecenie

> forever logs

lub

> sudo forever logs

otrzymasz lokalizację pliku dziennika


5

To zadziałało dla mnie:

forever -a -o out.log -e err.log app.js

5

Musisz zrobić normalnie, forever start script.js aby rozpocząć, i aby sprawdzić dzienniki konsoli / błędów, użyj forever logs tego, aby wydrukować listę wszystkich dzienników przechowywanych przez wieczność, a następnie możesz użyć, tail -f /path/to/logs/file.loga to wydrukuje dzienniki na żywo w Twoim oknie. naciśnij ctrl + z, aby zatrzymać drukowanie dzienników.


3

To stare pytanie, ale natknąłem się na te same problemy. Jeśli chcesz zobaczyć wyniki na żywo, możesz uruchomić

forever logs

To pokaże ścieżkę do pliku logów, a także numer skryptu. Możesz wtedy użyć

forever logs 0 -f

0 należy zastąpić numerem skryptu, dla którego chcesz zobaczyć wynik.


1

Pomoc jest najlepszym wybawcą, istnieje akcja rejestrująca, którą możesz wywołać, aby sprawdzić dzienniki wszystkich uruchomionych procesów.

forever --help

Pokazuje polecenia

logs                Lists log files for all forever processes
logs <script|index> Tails the logs for <script|index>

Przykładowe dane wyjściowe powyższego polecenia dla trzech uruchomionych procesów. W tych dziennikach są przechowywane dane wyjściowe console.log .

info:    Logs for running Forever processes
data:        script    logfile
data:    [0] server.js /root/.forever/79ao.log
data:    [1] server.js /root/.forever/ZcOk.log
data:    [2] server.js /root/.forever/L30K.log

1

Domyślnie na zawsze umieszcza wszystkie potrzebne pliki w katalogu /$HOME/.forever. Jeśli chcesz zmienić tę lokalizację, po prostu ustaw zmienną środowiskową FOREVER_ROOT, gdy używasz wiecznie:

FOREVER_ROOT=/etc/forever forever start index.js

0

Musisz dodać specyfikatory miejsca docelowego dziennika przed nazwą pliku do uruchomienia. Więc

na zawsze -e / ścieżka/error.txt -o / ścieżka/output.txt start index.js


0

Na podstawie odpowiedzi bryanmaca. Po prostu zapisuję wszystkie logi w jednym pliku, a następnie czytam go ogonem. Prosty, ale skuteczny sposób na zrobienie tego.

forever -o common.log -e common.log index.js && tail -f common.log

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.