我试图从日志文件名中删除服务标识符。例子:我的ecosystem.config.js样子是这样的:module.exports = { apps : [ { name: "My Service", script: "./app.js", watch: true, max_memory_restart: "150M", error: "/var/log/pm2/my-service.log", out: "/var/log/pm2/my-service.log", max_restarts: 10 } ]}然后,我希望得到一个名为:的日志文件/var/log/pm2/my-service.log。但这就是它产生的:/var/log/pm2/my-service-4.log。我正在使用pm2版本3.5.0,我刚刚从版本升级了它2.10.4节点版本: v8.16.0更新1:我还尝试过使用不同的参数merge_logs,例如,这是该版本的示例:module.exports = { apps : [ { name: "My Service", script: "./app.js", watch: true, max_memory_restart: "150M", error: "/var/log/pm2/my-service.log", out: "/var/log/pm2/my-service.log", max_restarts: 10, merge_logs: true } ]}更新2:似乎pm2完全忽略了我在error和output选项中设置的内容。我尝试将这些选项更改为error_file和out_file,然后使用重新加载日志,pm2 reloadLogs但是没有用。
2 回答
精慕HU
TA贡献1845条经验 获得超8个赞
看起来您正在为应用程序使用日志后缀。请参阅此处的pm2文档。
您可以
app-name-ID.log
通过启用启用选项来禁用日志(例如)上的自动ID后缀merge_logs: true
因此,您的env文件应如下所示:
module.exports = {
apps : [
{
name: "My Service",
script: "./app.js",
watch: true,
max_memory_restart: "150M",
error: "/var/log/pm2/my-service.log",
out: "/var/log/pm2/my-service.log",
max_restarts: 10,
merge_logs: true
}
]
}
饮歌长啸
TA贡献1951条经验 获得超3个赞
我已经找到了解决方案。
看起来pm2正在缓存生态系统文件,并且一旦启动该文件,它将完全忽略该文件上的更改。
为了使pm2重新加载所有配置,您必须删除所有服务并重新启动它们。
这是我所做的:
pm2 delete all pm2 startOrRestart ecosystem.config.js
完成此操作后,它重新加载了配置,并开始写入正确的文件。
添加回答
举报
0/150
提交
取消