为了账号安全,请及时绑定邮箱和手机立即绑定

PM2-如何从日志文件名中删除标识符

PM2-如何从日志文件名中删除标识符

素胚勾勒不出你 2021-05-05 17:41:17
我试图从日志文件名中删除服务标识符。例子:我的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

    }

  ]

}


查看完整回答
反对 回复 2021-05-20
?
饮歌长啸

TA贡献1951条经验 获得超3个赞

我已经找到了解决方案。

看起来pm2正在缓存生态系统文件,并且一旦启动该文件,它将完全忽略该文件上的更改。

为了使pm2重新加载所有配置,您必须删除所有服务并重新启动它们。

这是我所做的:

pm2 delete all
pm2 startOrRestart ecosystem.config.js

完成此操作后,它重新加载了配置,并开始写入正确的文件。


查看完整回答
反对 回复 2021-05-20
  • 2 回答
  • 0 关注
  • 151 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信