參考文章(寫的很詳細):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)
可以更改日志的滾動周期來驗證日志的生成效果,如
【注意點】
如果設置按S來生成日志文件的,注意不要傳入文件名不允許的標點符號,如“:”,否則,會報文件名或目錄不合法的錯誤
所以在設置文件名的格式的時候,要用其他符號代替“:”,比如“-”
正確寫法:file_hander.suffix = "%Y-%m-%d %H-%M-%S.log"
OS報錯寫法:%Y-%m-%d %H:%M:%S
生成日志文件的名稱,TimedRotatingFileHandler有默認設置,如果想修改suffix 和extmatch,需要和suffix匹配,否則無法刪除
https://blog.csdn.net/qgf1099062139/article/details/83619280
刪除日志時的exmatch,匹配正則表達式
https://blog.csdn.net/ashi198866/article/details/46725813