web-dev-qa-db-ja.com

pm2でのカスタムロギング

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ログに取り込むことについては何もわかりません。

10
user542319

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
_
10
Philip O'Brien

気の利いた機能の1つは、ターミナルで logs 機能を使用することです。

pm2 logs [--raw]

これにより、すべてのログがライブストリーミングされます。その他の便利なコマンドは次のとおりです。

  • pm2 flush
  • pm2 reloadLogs
5
Yan Foto

2017年に更新。

Pm2コマンドの実行時にログパスをパラメーターとして定義します(-l-o-e)は非常に使いやすく、通常は最良の選択です。

ただし、pm2が実行されるたびにログパスを定義したくない場合は、構成ファイルを生成し、error_fileout_fileを定義して、そこからpm2を開始できます。

  1. 構成ファイルを生成します:pm2 ecosystem simple。これにより、次の内容のファイルecosystem.config.jsが生成されます。

    module.exports = {
      apps : [{
        name   : "app1",
        script : "./app.js"
      }]
    }
    
  2. 次のように、ファイルにerror_file(エラーログの場合)およびout_file(情報ログの場合)を定義します。

    module.exports = {
      apps : [{
        name   : "app1",
        script : "./app.js",
        error_file : "./err.log",
        out_file : "./out.log"
      }]
    }
    
  3. 構成ファイルからプロセスを開始します。

    pm2 start ecosystem.config.js
    

このようにして、ログは./err.logおよび./out.logに保存されます。

詳細については、 ドキュメント を参照してください。

2
shaochuancs

新たなスタートの場合、あなたはただ:

  • 実行pm2 start/reload ecosystem.config.js [--only your_app]

しかし、それがすでに開始されている場合(pm2はすでにそれを管理している)、あなたはしなければなりません(誰かがより良い方法を見つけることができますが、これは私にとってはうまくいきます):

  • 実行pm2 delete your_app
  • 実行pm2 start
0
Tuananhcwrs