Pm2に関する質問がいくつかあります
server-error-0.log
およびserver-out-0.log
ファイルの場所をc:\users\user\.pm2\logs
から他のドライブに変更するにはどうすればよいですか。...ログファイルの場所を変更するにはどうすればよいですか?
Pm2のログファイルの場所を変更するには、2つの解決策があります。pm2コマンドの実行時にパラメーターとしてログパスを定義する(-l
、-o
、-e
)、または構成ファイルからpm2を起動します。
パラメーターの解決策の例を次に示します。
pm2 start app.js -o ./out.log -e ./err.log
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の既存のプロセスを削除します。
pm2 delete <pid>
次のようにしてpidを取得できます。
pm2 status
構成ファイルからプロセスを開始します。
pm2 start ecosystem.config.js
このようにして、ログは./err.log
および./out.log
に保存されます。
詳細については、 document を参照してください。
ログファイルの代わりにデータベースにエラーと情報を記録できますか?
公式文書にはリソースが見つかりませんでした。自分でコードを書き、データベースにログを保存する必要があるようです。
@shaochuancsの回答に追加したかったのは、ステップ3を実行する前に、古いプロセスを必ず削除することです。古いプロセスを削除しない場合、プロセスファイルに加えた変更は、アプリの起動後に有効になりません。
上記の手順3を実行する前に、このコマンドを発行する必要があります。
pm2 delete <pid>
エラーログとコンソールログの両方を同じファイルに書き込みたい場合は、OneFileにログインしてELKにプッシュすることに興味があるなど、ユースケースになるかもしれません。-l
-l --log [path] specify filepath to output both out and error logs
以下に例を示します
pm2 start server.js -l /app/logs/server.log
変更を行った後、回答に記載されているようにこのコマンドを実行することを忘れないでください。
pm2 delete <pid>
変更されたログパスで起動時にpm2が必要な場合: