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文件的结构不正确。