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 sys import os import time import logging import logging.handlers if __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
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Python 中的 plt.hist 函數(shù)基本用法詳解
plt.hist 函數(shù)用于繪制直方圖,直方圖是一種用來表示數(shù)據(jù)分布的圖形,它將數(shù)據(jù)分成若干個(gè)區(qū)間,然后統(tǒng)計(jì)每個(gè)區(qū)間中數(shù)據(jù)的數(shù)量,最終以柱狀圖的形式展示出來,這篇文章主要介紹了Python 中的 plt.hist 函數(shù)基本用法詳解,需要的朋友可以參考下2021-04-04Python?Asyncio中Coroutines,Tasks,Future可等待對象的關(guān)系及作用
這篇文章主要介紹了Python?Asyncio中Coroutines,Tasks,Future可等待對象的關(guān)系及作用,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,需要的小伙伴可以參考一下2022-06-06Python分割單詞和轉(zhuǎn)換命名法的實(shí)現(xiàn)
本文主要介紹了Python分割單詞和轉(zhuǎn)換命名法的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03Expected conditions模塊使用方法匯總代碼解析
這篇文章主要介紹了Expected conditions模塊使用方法匯總代碼解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08python用ConfigObj讀寫配置文件的實(shí)現(xiàn)代碼
發(fā)現(xiàn)一個(gè)簡單而又強(qiáng)大的讀寫配置文件的lib,個(gè)人覺得最大的亮點(diǎn)在于自帶的格式校驗(yàn)功能,并且支持復(fù)雜的嵌套格式,而且使用起來也相當(dāng)?shù)暮啽?/div> 2013-03-03最新評論