.pm2/logsのエラーログにタイムスタンプを追加する方法はありますか?
きがついた pm2 logs
コマンドは、タイムスタンプ付きの集約ログを表示しますが、ログファイルを調べます-日付のないメッセージとスタックトレースのみがあります。
コマンドラインヘルプ(pm2 logs -h
) ランニング pm2 logs --timestamp
コマンドは、タイムスタンプをログに追加する必要があります。ただし、古いログには影響しないようです!明らかに、新しいログのみがタイムスタンプとともに表示されます。
この問題を修正するには、--log-date-format="YYYY-MM-DD HH:mm Z"
をパラメーターとしてpm2に。例えば:
pm2 start bin/www --log-date-format="YYYY-MM-DD HH:mm Z"
便宜上、アプリを起動するためにprocess.jsonが好きなので、process.jsonには次のものが含まれています。
{
"apps" : [
{
"name" : "app",
"script" : "bin/www",
"log_date_format" : "YYYY-MM-DD HH:mm Z"
}
]
}
次に、実行するだけでアプリを起動します。
pm2 start process.json
完了したら、次のコマンドを実行するだけでタイムスタンプが表示されます:pm2 logs
タイムスタンプを表示するために--timestampを指定する必要がないことに注意してください。
app (out): 2016-08-04 13:46 +01:00: My log here
pm2 start app.js --log-date-format "YYYY-MM-DD HH:mm"
私はPM2を使用しますが、ログはそれほど気にしません。代わりにbunyanを使用します。これにより、ロギングの柔軟性が大幅に向上します。 npmを-globalでインストールすると、ライブログビューアとしても使用できます。
ただし、これはconsole.log出力にタイムスタンプを付けません。しかし、log.info()
またはその他のBunyanログ関数に変換すると、Niceロギングが得られます。
ライブpm2ログをbunyanで表示するには、パイプするだけです:
pm2 logs | bunyan
Process.ymlの場合、これらのサンプル形式に従います。それは私のために働いた
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"
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--------------------->
-log-date-formatを使用しても機能しませんでした。