¿Dónde almacena forever la salida de console.log?


105

Lo instalé para siempre y lo estoy usando, encontrándolo bastante divertido.

Pero me di cuenta de que los registros se colocan en otro lugar. ¿Hay algún consejo?

Respuestas:


134

Forever toma las opciones de la línea de comandos para la salida:

-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

Por ejemplo:

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

Vea aquí para más información


7
¿Cuál es la ruta predeterminada si no especifico ningún parámetro pero solo uso like forever myapp? ¡Gracias!
AGamePlayer

3
No lo veo documentado, creo que cambió con el tiempo. Veo registros antiguos en la carpeta ~ / .forever. Pero actualicé muy recientemente y al menos en mi mac, si no especifico un nombre de archivo de registro, escribe console.log en la terminal.
bryanmac

1
-a también es necesaria como opción si los archivos ya existen. forever -a -o out.log -e err.log my-script.js
swateek

2
¿Cuál es la diferencia entre LOGFILE y OUTFILE? ¡Para mí parece que contienen exactamente la misma información!
Dominic

3
@Dominic LOGFILE incluye toda la salida, incluida la salida del proceso forever, OUTFILE solo incluye stdout de su script secundario.
Joseph238

81

Forever, de forma predeterminada, pondrá los registros en un archivo aleatorio en la ~/.forever/carpeta.

Debe ejecutar forever listpara ver los procesos en ejecución y su archivo de registro correspondiente.

Salida de muestra

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

Sin embargo, probablemente sea mejor especificar con -lcomo lo menciona bryanmac.


1
No siempre es un archivo aleatorio. Si especificó un uid con el indicador --uid al iniciar, se creará un archivo de registro utilizando el uid especificado.
ddelrio1986


12

prueba el comando

> forever logs

o

> sudo forever logs

obtendrá la ubicación del archivo de registro


5

Esto funcionó para mí:

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

5

Debe hacer lo normal forever start script.js para comenzar, y para verificar la consola / los registros de error, use forever logs esto imprimirá la lista de todos los registros que se almacenan para siempre y luego puede usar tail -f /path/to/logs/file.logy esto imprimirá registros en vivo en su ventana. presione ctrl + z para detener la impresión de registros.


3

Es una pregunta antigua, pero me encontré con los mismos problemas. Si quieres ver la salida en vivo, puedes ejecutar

forever logs

Esto mostraría la ruta del archivo de registros, así como el número del script. Luego puedes usar

forever logs 0 -f

0 debe reemplazarse por el número del script para el que desea ver la salida.


1

La ayuda es su mejor salvador, hay una acción de registros a la que puede llamar para verificar los registros de todos los procesos en ejecución.

forever --help

Muestra los comandos

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

Salida de muestra del comando anterior, para tres procesos en ejecución. Los resultados de console.log se almacenan en estos registros.

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

De forma predeterminada, siempre coloca todos los archivos que necesita en /$HOME/.forever. Si desea cambiar esa ubicación, simplemente configure la variable de entorno FOREVER_ROOT cuando esté ejecutando para siempre:

FOREVER_ROOT=/etc/forever forever start index.js

0

Debe agregar los especificadores de destino del registro antes del nombre de archivo para ejecutar. Entonces

para siempre -e /ruta/error.txt -o /ruta/output.txt iniciar index.js


0

Basado en la respuesta de Bryanmac. Solo estoy guardando todos los registros en un archivo y luego lo leo con tail. Una forma sencilla pero eficaz de hacer esto.

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

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.