PM2 - 如何从日志文件名中删除标识符
PM2 - How can i remove the identifier from the log file name
我正在尝试从日志文件名中删除服务标识符。
示例:
我的 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
重新加载日志,但没有用。
您的应用似乎使用了日志后缀。见 pm2 documentation here.
You can disable automatic ID suffixs on logs (e.g. app-name-ID.log
) by passing enabling the option 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
执行此操作后,它重新加载配置并开始写入正确的文件。
我正在尝试从日志文件名中删除服务标识符。
示例:
我的 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
重新加载日志,但没有用。
您的应用似乎使用了日志后缀。见 pm2 documentation here.
You can disable automatic ID suffixs on logs (e.g.
app-name-ID.log
) by passing enabling the optionmerge_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
执行此操作后,它重新加载配置并开始写入正确的文件。