使用pm2启动应用时如何自定义日志存储路径?
问题根因
你启动失败的核心原因是参数位置传递错误:
- PM2的配置参数必须放在
--分隔符之前,--之后的所有参数都会直接传递给你要启动的业务命令(此处为yarn serve)。你之前把日志路径、日志格式等PM2专属参数放到了--之后,相当于把这些不被serve识别的参数传给了serve命令,直接导致启动失败。 - 额外注意:你第二次执行的命令中
--name的参数值拼写和原定的application-name不一致,会导致后续管理应用时找不到对应进程。
解决方法
方法1:直接修正启动命令
将PM2专属参数全部移到--分隔符之前即可,正确命令示例:
pm2 start yarn --name "application-name" --interpreter bash \ -o /自定义路径/标准输出.log \ -e /自定义路径/错误输出.log \ --log-date-format "YYYY-MM-DD HH:mm Z" \ -- serve
参数说明:
-o对应标准输出日志的存储路径-e对应错误输出日志的存储路径--log-date-format配置日志的前缀时间格式
方法2:使用配置文件管理(更适合长期维护)
如果需要长期管理应用配置,推荐使用PM2的生态配置文件,避免每次启动都输入大量参数:
- 在项目根目录执行命令生成基础配置文件:
pm2 init simple - 编辑生成的
ecosystem.config.js文件,填入相关配置:
module.exports = { apps : [{ name: "application-name", script: "yarn", interpreter: "bash", args: "serve", // 自定义日志配置 output: "/自定义路径/标准输出.log", error: "/自定义路径/错误输出.log", log_date_format: "YYYY-MM-DD HH:mm Z" }] }
- 使用配置文件启动应用:
pm2 start ecosystem.config.js
验证步骤
- 执行
pm2 list查看应用状态,若显示为online则启动成功 - 若状态为
errored,执行pm2 logs application-name查看具体报错信息排查问题 - 检查你设置的自定义日志路径下是否已生成对应日志文件,确认写入正常
内容的提问来源于stack exchange,提问作者Nikhil Kumar
相关产品推荐
相关产品推荐

