python 日誌logging設定按天進行儲存,儲存近7天,過期日誌自動清理
阿新 • • 發佈:2021-06-17
參考文章(寫的很詳細):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)
可以更改日誌的滾動週期來驗證日誌的生成效果,如