Python logging日志庫空間不足問題解決
項(xiàng)目中使用的日志庫是使用python官方庫logging封裝的,但是居然一直么有設(shè)置日志自動(dòng)滾動(dòng),經(jīng)常會(huì)受到告警說哪臺(tái)機(jī)器磁盤空間又滿,清理一下,于是研究一下,解決這個(gè)問題。
參考:https://docs.python.org/2/library/logging.handlers.html
TimedRotatingFileHandler有三個(gè)參數(shù)很關(guān)鍵
when、interval、backupCount
when指定滾動(dòng)依據(jù)的單位,可選的有天、小時(shí)、分鐘、秒等;interval指定間隔多少個(gè)when之后滾動(dòng)日志;而backupCount指定最多保留多少個(gè)日志。
所以結(jié)合這三個(gè)參數(shù)就可以實(shí)現(xiàn)我要的目的了,讓日志隨時(shí)間滾動(dòng),同時(shí)限制總的日志個(gè)數(shù)。

demo:
#!/usr/bin/env python# -*- coding: utf-8 -*-import sysimport osimport timeimport loggingimport logging.handlersif __name__ == ’__main__’: if len(sys.argv) != 2: print(’Usage:%s log_name’ % (sys.argv[0])) sys.exit(0) log_dir = ’./log’ log_name = sys.argv[1] logger = logging.getLogger(log_name) logger.setLevel(logging.DEBUG) # init handler formatter = logging.Formatter(’%(message)s’) file_time_handler = logging.handlers.TimedRotatingFileHandler( os.path.join(log_dir, log_name), 'M', 1, 5) file_time_handler.setFormatter(formatter) file_time_handler.setLevel(logging.DEBUG) logger.addHandler(file_time_handler) while True: time.sleep(1) logger.info(’Hello world %s’ % (time.strftime('%Y/%M/%d-%H:%m:%S')))
結(jié)果:

可以看到最上面的一條記錄記錄就被滾掉了。
666
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. android studio如何使用真機(jī)測(cè)試app2. ASP新手必備的基礎(chǔ)知識(shí)3. CSS可以做的幾個(gè)令你嘆為觀止的實(shí)例分享4. Python使用paramiko連接遠(yuǎn)程服務(wù)器執(zhí)行Shell命令的實(shí)現(xiàn)5. Android動(dòng)畫機(jī)制全解析6. JAVA 實(shí)現(xiàn)延遲隊(duì)列的方法7. axios和ajax的區(qū)別點(diǎn)總結(jié)8. HTML iframe標(biāo)簽用法案例詳解9. vue實(shí)現(xiàn)div單選多選功能10. CSS單標(biāo)簽實(shí)現(xiàn)復(fù)雜的棋盤布局

網(wǎng)公網(wǎng)安備