素胚勾勒不出你
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
}
]
}

飲歌長嘯
TA貢獻1951條經驗 獲得超3個贊
我已經找到了解決方案。
看起來pm2正在緩存生態系統文件,并且一旦啟動該文件,它將完全忽略該文件上的更改。
為了使pm2重新加載所有配置,您必須刪除所有服務并重新啟動它們。
這是我所做的:
pm2 delete all pm2 startOrRestart ecosystem.config.js
完成此操作后,它重新加載了配置,并開始寫入正確的文件。
添加回答
舉報
0/150
提交
取消