Python中l(wèi)ogging日志記錄到文件及自動(dòng)分割的操作代碼
日志作為項(xiàng)目開(kāi)發(fā)和運(yùn)行中必備組件,python提供了內(nèi)置的logging模塊來(lái)完成這個(gè)工作;借助 TimedRotatingFileHandler 可以按日期自動(dòng)分割日志,自動(dòng)保留日志文件數(shù)量等,下面是對(duì)日志的一個(gè)簡(jiǎn)單封裝和測(cè)試。
import loggingimport osfrom logging import handlersclass Logger(object): # 日志級(jí)別關(guān)系映射 level_relations = { ’debug’: logging.DEBUG, ’info’: logging.INFO, ’warning’: logging.WARNING, ’error’: logging.ERROR, ’critical’: logging.CRITICAL } def __init__(self, filename, level=’info’, when=’D’, back_count=3, fmt=’%(asctime)s - %(pathname)s[line:%(lineno)d] - %(levelname)s: %(message)s’): f_dir, f_name = os.path.split(filename) os.makedirs(f_dir, exist_ok=True) # 當(dāng)前目錄新建log文件夾 self.logger = logging.getLogger(filename) format_str = logging.Formatter(fmt) # 設(shè)置日志格式 self.logger.setLevel(self.level_relations.get(level)) # 設(shè)置日志級(jí)別 sh = logging.StreamHandler() # 往屏幕上輸出 sh.setFormatter(format_str) # 設(shè)置屏幕上顯示的格式 th = handlers.TimedRotatingFileHandler(filename=filename, when=when, backupCount=back_count, encoding=’utf-8’) # 往文件里寫(xiě)入指定間隔時(shí)間自動(dòng)生成文件的Handler # 實(shí)例化TimedRotatingFileHandler # interval是時(shí)間間隔,backupCount是備份文件的個(gè)數(shù),如果超過(guò)這個(gè)個(gè)數(shù),就會(huì)自動(dòng)刪除,when是間隔的時(shí)間單位,單位有以下幾種: # S 秒 # M 分 # H 小時(shí) # D 天 # ’W0’-’W6’ 每星期(interval=0時(shí)代表星期一:W0) # midnight 每天凌晨 th.setFormatter(format_str) # 設(shè)置文件里寫(xiě)入的格式 self.logger.addHandler(sh) # 把對(duì)象加到logger里 self.logger.addHandler(th)# 測(cè)試if __name__ == ’__main__’: logger = Logger(’./logs/2020/app.log’, ’debug’, ’S’, 5).logger logger.debug(’debug’) logger.info(’info’) logger.warning(’警告’) logger.error(’報(bào)錯(cuò)’) logger.critical(’嚴(yán)重’) # 單獨(dú)記錄error err_logger = Logger(’./logs/2020/error.log’, ’error’, ’S’, 3).logger err_logger.error(’錯(cuò)誤 error’)
為了測(cè)試方便,我們將時(shí)間間隔設(shè)為秒(按秒自動(dòng)命名分割文件),多運(yùn)行幾次后,會(huì)按照配置文件數(shù)量將多余的日志文件自動(dòng)刪除,保留如上圖中的日志文件。
原文鏈接:https://beltxman.com/3195.html,若無(wú)特殊說(shuō)明本站內(nèi)容為行星帶原創(chuàng),未經(jīng)同意禁止轉(zhuǎn)載!
總結(jié)
到此這篇關(guān)于Python中l(wèi)ogging日志記錄到文件及自動(dòng)分割的文章就介紹到這了,更多相關(guān)python logging日志記錄內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. vue跳轉(zhuǎn)頁(yè)面常用的幾種方法匯總2. 使用純HTML的通用數(shù)據(jù)管理和服務(wù)3. CSS3實(shí)例分享之多重背景的實(shí)現(xiàn)(Multiple backgrounds)4. XML入門(mén)的常見(jiàn)問(wèn)題(三)5. 不要在HTML中濫用div6. XML 非法字符(轉(zhuǎn)義字符)7. 父div高度不能自適應(yīng)子div高度的解決方案8. ASP動(dòng)態(tài)include文件9. Jquery使用原生AJAX方法請(qǐng)求數(shù)據(jù)10. el-input無(wú)法輸入的問(wèn)題和表單驗(yàn)證失敗問(wèn)題解決
