pm2 更改日志文件位置
Pm2 changing log file location
我有几个关于 pm2 的问题
- 如何更改
server-error-0.log
的位置和
server-out-0.log
文件位置从 c:\users\user\.pm2\logs
到其他驱动器,由于服务器的 C 盘访问限制。
- 我可以在数据库而不是日志文件中记录错误和信息吗?我是否需要为此编写一个单独的模块,或者有什么方法可以实现吗?
如何更改...日志文件位置?
要更改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
我可以在数据库而不是日志文件中记录错误和信息吗?
我没有在官方文档中找到任何资源。看来还得自己写代码存log到数据库了
只是想添加到@shaochuancs 的回答中,在执行第 3 步之前,请确保删除旧进程。如果您不删除旧流程,您对流程文件所做的更改将不会在您启动应用程序后生效。
您需要在执行上述第 3 步之前发出此命令:
pm2 delete <pid>
如果您希望 pm2 在启动时更改日志路径:
- pm2 全部删除
- pm2 开始 ecosystem.js
- pm2 保存
- pm2 启动
如果你想将错误日志和控制台日志写入同一个文件,可能是一个用例,比如我有兴趣登录 OneFile 推送到 ELK.you 可以使用 -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 的问题
- 如何更改
server-error-0.log
的位置和server-out-0.log
文件位置从c:\users\user\.pm2\logs
到其他驱动器,由于服务器的 C 盘访问限制。 - 我可以在数据库而不是日志文件中记录错误和信息吗?我是否需要为此编写一个单独的模块,或者有什么方法可以实现吗?
如何更改...日志文件位置?
要更改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
我可以在数据库而不是日志文件中记录错误和信息吗?
我没有在官方文档中找到任何资源。看来还得自己写代码存log到数据库了
只是想添加到@shaochuancs 的回答中,在执行第 3 步之前,请确保删除旧进程。如果您不删除旧流程,您对流程文件所做的更改将不会在您启动应用程序后生效。
您需要在执行上述第 3 步之前发出此命令:
pm2 delete <pid>
如果您希望 pm2 在启动时更改日志路径:
- pm2 全部删除
- pm2 开始 ecosystem.js
- pm2 保存
- pm2 启动
如果你想将错误日志和控制台日志写入同一个文件,可能是一个用例,比如我有兴趣登录 OneFile 推送到 ELK.you 可以使用 -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>