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

Javascript PM2-如何从日志文件名中删除标识符,javascript,logging,pm2,Javascript,Logging,Pm2,我正在尝试从日志文件名中删除服务标识符 例如: 我的生态系统.config.js如下所示: module.exports = { apps : [ { name: "My Service", script: "./app.js", watch: true, max_memory_restart: "150M", error: "/var/log/pm2/my-service.log", o

我正在尝试从日志文件名中删除服务标识符

例如:

我的
生态系统.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
    }
  ]
}
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
    }
  ]
}
然后,我需要一个名为:
/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\u 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\u file
out\u file
,然后使用
pm2 reloadLogs
重新加载日志,但没有成功

看起来您正在为应用程序使用日志后缀。看

您可以通过传递启用选项
merge_logs:true
来禁用日志上的自动ID后缀(例如
app-name-ID.log

因此,您的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
    }
  ]
}
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全部删除
pm2 startOrRestart生态系统.config.js

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

OK。请使用您尝试过的env文件更新您的问题。这正是我正在使用的设置,它正在工作。可能pm2.env文件的结构不正确。