Existe-t-il un moyen d'ajouter des horodatages aux journaux d'erreurs dans .pm2/logs?
J'ai remarqué que la commande pm2 logs
Affiche des journaux agrégés avec des horodatages, mais en regardant dans les fichiers journaux - il n'y a que des messages et des traces de pile sans dates.
Selon ce problème & ce commit , vous pouvez utiliser:
pm2 start app.js --log-date-format 'DD-MM HH:mm:ss.SSS'
où 'DD-MM HH:mm:ss.SSS'
est n'importe quel momentjs
format valide.
Selon l'aide de la ligne de commande (pm2 logs -h
), L'exécution de la commande pm2 logs --timestamp
Devrait ajouter l'horodatage aux journaux. Cependant, cela ne semble pas affecter les anciens journaux! Apparemment, seuls les nouveaux journaux apparaissent avec horodatage.
Pour résoudre ce problème, passez --log-date-format="YYYY-MM-DD HH:mm Z"
À pm2 en tant que paramètre. Par exemple:
pm2 start bin/www --log-date-format="YYYY-MM-DD HH:mm Z"
J'aime process.json pour démarrer mon application pour plus de commodité donc mon process.json contient les éléments suivants:
{
"apps" : [
{
"name" : "app",
"script" : "bin/www",
"log_date_format" : "YYYY-MM-DD HH:mm Z"
}
]
}
puis je lance mon application en exécutant simplement:
pm2 start process.json
Une fois terminé, je vois l'horodatage apparaître simplement en exécutant: pm2 logs
Notez que je n'ai pas eu à spécifier --timestamp pour voir l'horodatage.
app (out): 2016-08-04 13:46 +01:00: My log here
Une bonne lecture: http://pm2.keymetrics.io/docs/usage/log-management/
pm2 start app.js --log-date-format "YYYY-MM-DD HH:mm"
J'utilise PM2, mais je ne me soucie pas beaucoup des journaux. Au lieu de cela, j'utilise bunyan, ce qui donne une tonne de flexibilité pour la journalisation. Si vous npm l'installez avec - global vous pouvez également l'utiliser comme visualiseur de journaux en direct:
Cependant, cela n'horodatera pas votre sortie console.log. Mais si vous convertissez en log.info()
ou toute autre fonction de journalisation Bunyan, vous obtiendrez une bonne journalisation.
Pour afficher les journaux pm2 en direct avec bunyan, il suffit de le diriger:
pm2 logs | bunyan
Pour utiliser un horodatage formaté standard:
pm2 start app.js --time
Ou si vous souhaitez préfixer les journaux avec un horodatage formaté personnalisé:
pm2 start app.js --log-date-format <format>
Où <format>
est un format d'affichage des moments (par exemple YYYY-MM-DD HH:mm Z
).
Et si votre application est déjà en cours d'exécution, vous pouvez utiliser reload
pour une recharge de 0 seconde :
pm2 reload app.js --time
Ou
pm2 reload app.js --log-date-format <format>
Pour process.yml, suivez ces exemples de format. Ça a marché pour moi
apps:
- script : ./SampleApi/app.js
name : 'api-proxy-app'
instances: 2
exec_mode: cluster
watch : true
log_date_format : "YYYY-MM-DD HH:mm Z"
Exemple de format de journal avec DateTime:
2019-07-28 13:46 +06:00: channel created for cancel mandate--####################################
2019-07-28 13:46 +06:00: channel created for cancel mandate--####################################
2019-07-28 13:46 +06:00: channel created for exception scenario--####################################
2019-07-28 13:46 +06:00: channel created for create mandate--####################################
2019-07-28 13:46 +06:00: create channel initiated for cancel mandate--------------------->
2019-07-28 13:46 +06:00: create channel initiated for create mandate--------------------->
2019-07-28 13:46 +06:00: create channel initiated for update mandate--------------------->
L'utilisation de --log-date-format n'a pas fonctionné pour moi.