猿问

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

我试图从日志文件名中删除服务标识符。


例子:


我的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但是没有用。


素胚勾勒不出你
浏览 235回答 2
2回答

精慕HU

看起来您正在为应用程序使用日志后缀。请参阅此处的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    }  ]}

饮歌长啸

我已经找到了解决方案。看起来pm2正在缓存生态系统文件,并且一旦启动该文件,它将完全忽略该文件上的更改。为了使pm2重新加载所有配置,您必须删除所有服务并重新启动它们。这是我所做的:pm2 delete all pm2 startOrRestart ecosystem.config.js完成此操作后,它重新加载了配置,并开始写入正确的文件。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答