2012-04-29 9 views
12

Ho appena scoperto che la mia app nodejs continua a bloccarsi, quindi ho utilizzato forever app.js per avviare la mia app e riavviarla automaticamente quando si interrompe.Utilizzo di nodejs Forever per inviare console.logs alla schermata

Problema: Ora la mia app emette molte informazioni utili mentre viene eseguita tramite console.log e util.log. Usavo screen per eseguire l'app nodo, ma ora che sto usando per sempre per eseguire l'app nodejs, non riesco più a vedere tutti gli output.

C'è un modo per vedere tutto l'output dell'app nodifica in tempo reale?

+0

Basta aprire il file di log in coda, ma se hai bisogno per vedere l'output in tempo reale suggerisce che non si dovrebbe usare per sempre (cioè si sta eseguendo il debug). – jli

+1

invio alcune informazioni in modo da poter monitorare il numero di lavori, il numero di client connessi in qualsiasi momento, il che è molto utile per il monitoraggio del carico e per determinare se devo aggiungere più client o se metà del pool del client si è arrestato. Suppongo che per fare ciò che voglio fare, dovrei avere un "master client" che si connette a questo server nodejs per ricevere le informazioni di debug? O c'è un altro metodo – Nyxynyx

+0

E sto correndo per sempre mentre sono in dev, quindi posso imparare a usarlo e scoprire eventuali insidie ​​che incontrerò quando andremo a vivere. Non vedo alcuna ragione per cui sia "brutto" usare per sempre mentre è in sviluppo. – AJB

risposta

24

È possibile vedere un file di log in tempo reale utilizzando questo comando shell.

tail -f /path/to/logfile 

Non so se questo è quello che ti serviva.

+0

Sembra che potrebbe essere ciò di cui ho bisogno, dovrò tornare al mio sistema per provare "coda". Da una rapida ricerca su google, tail mostra solo l'ultimo numero X di righe in un file, ma si aggiorna in tempo reale? – Nyxynyx

+2

Non ha letto la pagina man. – Hello71

+2

'-f' flag farà ciò di cui ho bisogno. Grazie! – Nyxynyx

19

Direttamente con sempre comando:

forever logs app.js -f 

Essa mostra in uscita in tempo reale della domanda e per sempre tronchi (spettacoli rilevate modifiche & riavviare messaggi).

+0

Funziona, basta avviare il processo: avvia sempre app.js, quindi registra per sempre app.js -f – JLavoie

3

Se si passa il flag --help Forever vedrete questo esempio:

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

-o e -e definiscono i file di log stdout e stderr.

-o OUTFILE  Logs stdout from child script to OUTFILE 
-e ERRFILE  Logs stderr from child script to ERRFILE 

Per sempre sembra un po 'eccessivo per lo sviluppo. Dare Supervisor un colpo e vedere se ti piace meglio:

npm install -g supervisor 
supervisor app.js 
1

modo più semplice per andare è

Run:

forever logs // will give you list of log files 
forever logs 0 -f // then just provide the index of log 
Problemi correlati