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?

AGamePlayer
źródło

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

bryanmac
źródło
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.

Liyan Chang
źródło
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

Moh .S
źródło
5

To zadziałało dla mnie:

forever -a -o out.log -e err.log app.js
Zubair
źródło
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.

BanwariLal Bamalwa
źródło
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.

chan
źródło
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
bhupen.chn
źródło
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
Loup G.
źródło
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

user450821
źródło
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

Niko9911
źródło