J'ai quelques questions concernant pm2
server-error-0.log
et server-out-0.log
emplacement des fichiers de c:\users\user\.pm2\logs
vers un autre lecteur, en raison d'une restriction d'accès au lecteur c du serveur.Comment puis-je changer l'emplacement de ... l'emplacement du fichier journal?
Pour modifier l'emplacement du fichier journal de pm2, il existe 2 solutions: définir le chemin du journal comme paramètre lors de l'exécution de la commande pm2 (-l
, -o
, -e
), ou lancez pm2 à partir d'un fichier de configuration.
Pour la solution des paramètres, voici un exemple:
pm2 start app.js -o ./out.log -e ./err.log
Si vous ne souhaitez pas définir le chemin du journal à chaque exécution de pm2, vous pouvez générer un fichier de configuration, définissez error_file
et out_file
, et commencez pm2 à partir de là:
Générez un fichier de configuration: pm2 ecosystem simple
. Cela générerait un fichier ecosystem.config.js
, avec le contenu suivant:
module.exports = {
apps : [{
name : "app1",
script : "./app.js"
}]
}
Définissez error_file
(pour le journal des erreurs) et out_file
(pour le journal d'informations) dans le fichier, par exemple:
module.exports = {
apps : [{
name : "app1",
script : "./app.js",
error_file : "./err.log",
out_file : "./out.log"
}]
}
Supprimez les processus existants dans pm2:
pm2 delete <pid>
Vous pouvez obtenir pid en faisant:
pm2 status
Démarrez le processus à partir du fichier de configuration:
pm2 start ecosystem.config.js
De cette façon, les journaux sont enregistrés dans ./err.log
et ./out.log
.
Veuillez vous référer au document pour des informations détaillées.
Puis-je enregistrer l'erreur et les informations dans la base de données au lieu d'un fichier journal?
Je n'ai trouvé aucune ressource dans le document officiel. Il semble que vous deviez écrire du code et enregistrer le journal dans la base de données vous-même.
Je voulais juste ajouter à la réponse @shaochuancs, qu'avant de faire l'étape 3, assurez-vous de supprimer l'ancien processus. Si vous ne supprimez pas l'ancien processus, les modifications que vous avez apportées à votre fichier de processus ne prendront pas effet après le démarrage de votre application.
Vous devrez exécuter cette commande avant d'effectuer l'étape 3 ci-dessus:
pm2 delete <pid>
Si vous souhaitez écrire à la fois un journal des erreurs et un journal de la console dans le même fichier, cela peut être un cas d'utilisation, comme je suis intéressé par la connexion de OneFile pour pousser vers ELK.vous pouvez utiliser -l
-l --log [path] specify filepath to output both out and error logs
Voici l'exemple
pm2 start server.js -l /app/logs/server.log
Après avoir effectué des modifications, n'oubliez pas d'exécuter cette commande comme indiqué dans la réponse.
pm2 delete <pid>
Si vous souhaitez que pm2 au démarrage avec un chemin de journaux modifié: