請問各位大大一個日誌備份的問題:
目前專案使用 multiprocessing 使用了日誌套件 concurrent-log
中的 ConcurrentTimedRotatingFileHandler
,但最近發現除了本地環境外,其他環境下不會刪除舊的日誌檔案,。
所有環境包含本地的 OS 都是 linux,本地啟動 log 是用 script ,其他環境是先啟動 docker container 接著呼叫 script。
script 中會先拿取環境變數再實例化 ConcurrentTimedRotatingFileHandler
時傳入環境變數,後面接著會印出關於 logging handler 的訊息(路徑、備份數量backupCount
等)。這在容器中可以看到設定的環境變數被印出,所以似乎不是環境變數的問題。
在容器中執行 logging getFilestoDelete
的程式碼可以刪除過舊檔案,所以權限也沒問題。但不知為何日誌在 rotate 時似乎正確使用 backupCount
參數。
想問各位是否遇過類似問題,目前想不出往哪個方向解決,若解決不了可能只能換其他套件或是自己做一個了,感謝大家