web-dev-qa-db-fra.com

Comment ajouter des dates aux journaux d'erreurs pm2?

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.

enter image description here

57
Plastic Rabbit

Selon ce problème & ce commit , vous pouvez utiliser:

pm2 start app.js --log-date-format 'DD-MM HH:mm:ss.SSS'

'DD-MM HH:mm:ss.SSS' est n'importe quel momentjs format valide.

66
AbdelHady

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"

Utilisation de process.json

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/

34
Raptor

pm2 start app.js --log-date-format "YYYY-MM-DD HH:mm"

7
Randost

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

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>

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

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.

1
mnhmilu