Où stocke toujours la sortie console.log?

105

Je l'ai installé pour toujours et je l'utilise, le trouvant assez drôle.

Mais j'ai réalisé que les journaux sont placés ailleurs. Y a-t-il des conseils?

AGamePlayer
la source

Réponses:

135

Forever prend les options de ligne de commande pour la sortie:

-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

Par exemple:

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

Voir ici pour plus d'informations

bryanmac
la source
7
quel est le chemin par défaut si je ne spécifie aucun paramètre mais que j'utilise simplement like forever myapp? Merci!
AGamePlayer
3
Je ne le vois pas documenté - je pense qu'il a changé avec le temps. Je vois d'anciens journaux dans le dossier ~ / .forever. Mais j'ai mis à jour très récemment et au moins sur mon mac si je ne spécifie pas de nom de fichier journal, il écrit console.log sur le terminal.
bryanmac
1
-a est également nécessaire en option si les fichiers existent déjà. pour toujours -a -o out.log -e err.log my-script.js
swateek
2
Quelle est la différence entre LOGFILE et OUTFILE? Pour moi, il semble qu'ils contiennent exactement les mêmes informations!
Dominic
3
@Dominic LOGFILE inclut toutes les sorties, y compris la sortie du processus forever, OUTFILE inclut uniquement stdout de votre script enfant.
Joseph238
81

Forever, par défaut, mettra les journaux dans un fichier aléatoire dans le ~/.forever/dossier.

Vous devez exécuter forever listpour voir les processus en cours d'exécution et leur fichier journal correspondant.

Exemple de sortie

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

Cependant, il est probablement préférable de spécifier avec -lcomme mentionné par bryanmac.

Liyan Chang
la source
1
Ce n'est pas toujours un fichier aléatoire. Si vous avez spécifié un uid avec l'indicateur --uid lors du démarrage, il créera un fichier journal en utilisant l'uid spécifié.
ddelrio1986
12

essayez la commande

> forever logs

ou

> sudo forever logs

vous obtiendrez l'emplacement du fichier journal

Moh .S
la source
5

Cela a fonctionné pour moi:

forever -a -o out.log -e err.log app.js
Zubair
la source
5

Besoin de faire normal forever start script.js pour démarrer, et pour vérifier la console / les journaux d'erreurs, utilisez forever logs cela pour imprimer la liste de tous les journaux stockés pour toujours, puis vous pourrez l'utiliser tail -f /path/to/logs/file.loget cela imprimera les journaux en direct dans votre fenêtre. appuyez sur ctrl + z pour arrêter l'impression des journaux.

BanwariLal Bamalwa
la source
3

C'est une vieille question mais j'ai rencontré les mêmes problèmes. Si vous voulez voir la sortie en direct, vous pouvez exécuter

forever logs

Cela afficherait le chemin du fichier journaux ainsi que le numéro du script. Vous pouvez ensuite utiliser

forever logs 0 -f

0 doit être remplacé par le numéro du script dont vous voulez voir la sortie.

khan
la source
1

L'aide est votre meilleur sauveur, il existe une action de journalisation que vous pouvez appeler pour vérifier les journaux de tous les processus en cours d'exécution.

forever --help

Affiche les commandes

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

Exemple de sortie de la commande ci-dessus, pour trois processus en cours d'exécution. Les sorties console.log sont stockées dans ces journaux.

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
la source
1

Par défaut place pour toujours tous les fichiers dont il a besoin dans /$HOME/.forever. Si vous souhaitez modifier cet emplacement, définissez simplement la variable d'environnement FOREVER_ROOT lorsque vous exécutez indéfiniment:

FOREVER_ROOT=/etc/forever forever start index.js
Loup G
la source
0

Vous devez ajouter les spécificateurs de destination du journal avant le nom de fichier à exécuter. Alors

pour toujours -e /chemin/error.txt -o /chemin/output.txt start index.js

user450821
la source
0

Basé sur la réponse de bryanmac. J'enregistre simplement tous les journaux dans un seul fichier, puis je le lis avec la queue. Un moyen simple mais efficace de le faire.

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

Niko9911
la source