1. 程式人生 > 其它 >python 日誌logging設定按天進行儲存,儲存近7天,過期日誌自動清理

python 日誌logging設定按天進行儲存,儲存近7天,過期日誌自動清理

參考文章(寫的很詳細):https://www.cnblogs.com/xujunkai/p/12364619.html

前言:

跑介面自動化或者其他程式執行時,如果只能儲存一份log檔案,可能會存在,log檔案越來越大的問題,載入緩慢,查詢日誌也比較慢,增加日誌根據天來儲存,定期清理日誌,可以達到日誌更好的管理,更加方便日誌查詢。

怎麼實現?

使用的是python語言,加上logging的TimedRotatingFileHandler實現

        # 3、 輸出到檔案拓展,每天生成一個檔案,儲存近3天的的log檔案,防止檔案過大的
        # interval 滾動週期, when="MIDNIGHT", interval=1 表示每天0點為更新點,每天生成一個檔案,backupCount  表示日誌儲存個數
        # filename:要加上每天的日期拼接組成
        logs_path = os.path.join(project_path.logs_path_day, 'log')
        file_hander = TimedRotatingFileHandler(filename=logs_path, when='MIDNIGHT',
                                               interval=1, backupCount=3)
        # 設定生成日誌檔名的格式,以年-月-日來命名
        # suffix設定,會生成檔名為log.2020-02-25.log
        file_hander.suffix = "%Y-%m-%d.log"
        # extMatch是編譯好正則表示式,用於匹配日誌檔名字尾
        # 需要注意的是suffix和extMatch一定要匹配的上,如果不匹配,過期日誌不會被刪除。
        file_hander.extMatch = re.compile(r"^\d{4}-\d{2}-\d{2}.log$")
        file_hander.setFormatter(formatter)

可以更改日誌的滾動週期來驗證日誌的生成效果,如