Dove memorizza per sempre l'output di console.log?


105

L'ho installato per sempre e lo sto usando, trovandolo abbastanza divertente.

Ma mi sono reso conto che i registri sono collocati altrove. Ci sono suggerimenti?

Risposte:


134

Forever accetta le opzioni della riga di comando per l'output:

-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

Per esempio:

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

Vedi qui per maggiori informazioni


7
qual è il percorso di default se non specifico alcun parametro ma uso solo like forever myapp? Grazie!
AGamePlayer

3
Non lo vedo documentato, penso sia cambiato nel tempo. Vedo vecchi log nella cartella ~ / .forever. Ma ho aggiornato molto di recente e almeno sul mio Mac se non indico un nome per il file di registro, scrive console.log sul terminale.
bryanmac

1
-a è necessaria anche come opzione se i file esistono già. forever -a -o out.log -e err.log my-script.js
swateek

2
Qual è la differenza tra LOGFILE e OUTFILE? Per me sembra che contengano esattamente le stesse informazioni!
Dominic

3
@Dominic LOGFILE include tutto l' output incluso l'output del processo forever, OUTFILE include solo lo stdout dallo script figlio.
Joseph 238

81

Per sempre, per impostazione predefinita, inserirà i registri in un file casuale nella ~/.forever/cartella.

Dovresti eseguire forever listper vedere i processi in esecuzione e il file di registro corrispondente.

Output di esempio

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

Tuttavia, probabilmente è meglio specificare con -lcome menzionato da bryanmac.


1
Non è sempre un file casuale. Se si specifica un uid con il flag --uid all'avvio, verrà creato un file di registro utilizzando l'uid specificato.
ddelrio1986


12

prova il comando

> forever logs

o

> sudo forever logs

otterrai la posizione del file di registro


5

Questo ha funzionato per me:

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

5

È necessario fare normalmente forever start script.js per iniziare e per controllare la console / i registri degli errori, utilizzare forever logs questo stamperà l'elenco di tutti i registri archiviati per sempre e quindi è possibile utilizzarli tail -f /path/to/logs/file.loge questo stamperà i registri live sulla finestra. premi ctrl + z per interrompere la stampa dei log.


3

È una vecchia domanda, ma ho riscontrato gli stessi problemi. Se vuoi vedere l'output dal vivo puoi eseguire

forever logs

Questo mostrerebbe il percorso del file di log e il numero dello script. È quindi possibile utilizzare

forever logs 0 -f

0 dovrebbe essere sostituito dal numero dello script di cui vuoi vedere l'output.


1

L'aiuto è il tuo miglior salvatore, c'è un'azione dei log che puoi chiamare per controllare i log per tutti i processi in esecuzione.

forever --help

Mostra i comandi

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

Output di esempio del comando precedente, per tre processi in esecuzione. Gli output di console.log vengono memorizzati in questi 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

Per impostazione predefinita, inserisce per sempre tutti i file necessari in /$HOME/.forever. Se desideri cambiare quella posizione, imposta la variabile d'ambiente FOREVER_ROOT quando sei in esecuzione per sempre:

FOREVER_ROOT=/etc/forever forever start index.js

0

È necessario aggiungere gli specificatori di destinazione del log prima del nome del file da eseguire. Così

per sempre -e /path/error.txt -o /path/output.txt avvia index.js


0

Basato sulla risposta di Bryanmac. Sto solo salvando tutti i log in un file e poi leggendolo con tail. Modo semplice ma efficace per farlo.

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

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.