console.log
に書き込むノードアプリにいくつかの便利なログインがあります
node server.js >> /var/log/nodeserver.log 2>&1
ただし、pm2で同じことを試みると:
pm2 start server.js >> /var/log/pm2server.log 2>&1
ログファイルには、pm2起動情報のみが表示されます。
pm2でアプリケーションのログ記録は可能ですか?彼らのページでは、ロギングについて説明し、"log message from echo.js"
のようなテキストで画像を表示していますが、カスタム情報をpm2ログに取り込むことについては何もわかりません。
Pm2で実行する場合、アプリケーションログは説明されているように_$HOME/.pm2/logs
_にあります ここ 。 console.log('test')
を出力する単純な_index.js
_ファイルを使用して、これをローカルで確認します
_$ pm2 start index.js
[PM2] Spawning PM2 daemon
[PM2] PM2 Successfully daemonized
[PM2] Starting index.js in fork_mode (1 instance)
[PM2] Done.
┌──────────┬────┬──────┬───────┬────────┬─────────┬────────┬────────────┬──────────┐
│ App name │ id │ mode │ pid │ status │ restart │ uptime │ memory │ watching │
├──────────┼────┼──────┼───────┼────────┼─────────┼────────┼────────────┼──────────┤
│ index │ 0 │ fork │ 36976 │ online │ 0 │ 0s │ 9.258 MB │ disabled │
└──────────┴────┴──────┴───────┴────────┴─────────┴────────┴────────────┴──────────┘
Use `pm2 show <id|name>` to get more details about an app
_
ここに_console.log
_の出力が表示されないことに注意してくださいbut_$HOME/.pm2/logs
_に移動すると表示されます
_logs $ ls
index-error-0.log index-out-0.log
logs $ cat index-out-0.log
test
_
気の利いた機能の1つは、ターミナルで logs
機能を使用することです。
pm2 logs [--raw]
これにより、すべてのログがライブストリーミングされます。その他の便利なコマンドは次のとおりです。
pm2 flush
pm2 reloadLogs
2017年に更新。
Pm2コマンドの実行時にログパスをパラメーターとして定義します(-l
、-o
、-e
)は非常に使いやすく、通常は最良の選択です。
ただし、pm2が実行されるたびにログパスを定義したくない場合は、構成ファイルを生成し、error_file
とout_file
を定義して、そこからpm2を開始できます。
構成ファイルを生成します:pm2 ecosystem simple
。これにより、次の内容のファイルecosystem.config.js
が生成されます。
module.exports = {
apps : [{
name : "app1",
script : "./app.js"
}]
}
次のように、ファイルにerror_file
(エラーログの場合)およびout_file
(情報ログの場合)を定義します。
module.exports = {
apps : [{
name : "app1",
script : "./app.js",
error_file : "./err.log",
out_file : "./out.log"
}]
}
構成ファイルからプロセスを開始します。
pm2 start ecosystem.config.js
このようにして、ログは./err.log
および./out.log
に保存されます。
詳細については、 ドキュメント を参照してください。
新たなスタートの場合、あなたはただ:
pm2 start/reload ecosystem.config.js [--only your_app]
しかし、それがすでに開始されている場合(pm2はすでにそれを管理している)、あなたはしなければなりません(誰かがより良い方法を見つけることができますが、これは私にとってはうまくいきます):
pm2 delete your_app
pm2 start