最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python?logging模塊詳解及其日志定時清理方式

 更新時間:2025年04月16日 14:40:22   作者:小白、瑤  
這篇文章主要介紹了python?logging模塊詳解及其日志定時清理方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

python logging模塊及日志定時清理

1.創(chuàng)建logger對象

logger = logging.getLogger(log_name) # 傳入logger名字

2.logging.basicConfig常用樣式

logging.basicConfig(level=logging.DEBUG,
                    format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s',
                    datefmt='%a, %d %b %Y %H:%M:%S',
                    filename='./Log/test_log.log',
                    filemode='a')
參數(shù)名稱描述
level日志輸出級別
format日志輸出的格式
datefmt使用指定的格式字符串的處理程序
filename日志輸出到文件的文件名
filemode文件模式,r[+]、w[+]、a[+]

日志等級說明:

  • DEBUG:程序調(diào)試bug時使用
  • INFO:程序正常運行時使用
  • WARNING:程序未按預(yù)期運行時使用,但并不是錯誤,如:用戶登錄密碼錯誤
  • ERROR:程序出錯誤時使用,如:IO操作失敗
  • CRITICAL:特別嚴(yán)重的問題,導(dǎo)致程序不能再繼續(xù)運行時使用,如:磁盤空間為空,一般很少使用

日志等級從低到高的順序是: DEBUG < INFO < WARNING < ERROR < CRITICAL

3.常用handlers的使用

StreamHandler

流handler——包含在logging模塊中的三個handler之一。

能夠?qū)⑷罩拘畔⑤敵龅絪ys.stdout, sys.stderr 或者類文件對象(更確切點,就是能夠支持write()和flush()方法的對象)。

只有一個參數(shù):

class logging.StreamHandler(stream=None)

日志信息會輸出到指定的stream中,如果stream為空則默認(rèn)輸出到sys.stderr。

FileHandler

logging模塊自帶的三個handler之一。繼承自StreamHandler。將日志信息輸出到磁盤文件上。

構(gòu)造參數(shù):

class logging.FileHandler(filename, mode='a', encoding=None, delay=False)

模式默認(rèn)為append,delay為true時,文件直到emit方法被執(zhí)行才會打開。默認(rèn)情況下,日志文件可以無限增大。

NullHandler

空操作handler,logging模塊自帶的三個handler之一。沒有參數(shù)。

WatchedFileHandler

位于logging.handlers模塊中。用于監(jiān)視文件的狀態(tài),如果文件被改變了,那么就關(guān)閉當(dāng)前流,重新打開文件,創(chuàng)建一個新的流。由于newsyslog或者logrotate的使用會導(dǎo)致文件改變。

這個handler是專門為linux/unix系統(tǒng)設(shè)計的,因為在windows系統(tǒng)下,正在被打開的文件是不會被改變的。

參數(shù)和FileHandler相同:

class logging.handlers.WatchedFileHandler(filename, mode='a', encoding=None, delay=False)

RotatingFileHandler

位于logging.handlers支持循環(huán)日志文件。

class logging.handlers.RotatingFileHandler(filename, mode='a', maxBytes=0, backupCount=0, encoding=None, delay=0)

參數(shù)maxBytes和backupCount允許日志文件在達到maxBytes時rollover.當(dāng)文件大小達到或者超過maxBytes時,就會新創(chuàng)建一個日志文件。

上述的這兩個參數(shù)任一一個為0時,rollover都不會發(fā)生。也就是就文件沒有maxBytes限制。backupcount是備份數(shù)目,也就是最多能有多少個備份。

當(dāng)前的日志文件大小超過設(shè)定的maxBytes時會將當(dāng)前的日志文件名例a.log后面加上.1的后綴,如a.log.1,并新建一個a.log文件來記錄日志信息。

TimedRotatingFileHandler

定時循環(huán)日志handler,位于logging.handlers,支持定時生成新日志文件。

class logging.handlers.TimedRotatingFileHandler(filename, when='h', interval=1, backupCount=0, encoding=None, delay=False, utc=False)

參數(shù)when決定了時間間隔的類型,參數(shù)interval決定了多少的時間間隔。

如when=‘D’,interval=2,就是指兩天的時間間隔,backupCount決定了能留幾個日志文件。

超過數(shù)量就會丟棄掉老的日志文件。when的參數(shù)決定了時間間隔的類型。

其他handler

SocketHandler、DatagramHandler、SysLogHandler、NtEventHandler、SMTPHandler、MemoryHandler、HTTPHandler

這些handler都不怎么常用,所以具體介紹就請參考官方文檔 其他handlers

handler參數(shù)配置

如:

class logging.handlers.TimedRotatingFileHandler(filename, when='h', interval=1, backupCount=0, encoding=None, delay=False, utc=False)
  • when:是一個字符串,用于描述滾動周期的基本單位,字符串的值及意義如下(不區(qū)分大小寫):
類型單位
S
M
H
D
W0-W6周一至周日
midnight每天的凌晨
  • interval: 滾動周期,單位有when指定,比如:when=’D’,interval=1,表示每天產(chǎn)生一個日志文件,且清理匹配到的過期文件;
  • backupCount: 表示日志文件的保留個數(shù);
  • delay:延遲文件創(chuàng)建,直到第一次調(diào)用emit()方法創(chuàng)建日志文件
  • atTime:在指定的時間(datetime.time格式)創(chuàng)建日志文件。

刪除日志文件設(shè)置

# suffix設(shè)置,會生成文件名為xxx.2022-02-10.log
log_file_handler.suffix = "%Y-%m-%d.log"  
# extMatch是編譯好正則表達式,用于匹配日志文件名后綴,需要注意的是suffix和extMatch一定要匹配的上,如果不匹配,過期日志不會被刪除。
log_file_handler.extMatch = re.compile(r"^\d{4}-\d{2}-\d{2}.log$")

suffix和extMatch的格式要相對應(yīng),Year-4位,m-2位 以此類推

舉例:

rf_handler = logging.handlers.TimedRotatingFileHandler('all.log', when='midnight', interval=1, backupCount=7, atTime=datetime.time(0, 0, 0, 0))
rf_handler.setFormatter(logging.Formatter("[%(asctime)s] -- %(remote_addr)s -- requested -- %(url)s -- %(levelname)s -- %(process)s -- %(thread)s -- %(module)s -- %(funcName)s -- %(lineno)d -- %(message)s --\n__________"))

添加到日志處理對象集合

my_logging.addHandler(handle)

關(guān)閉日志收集器

my_logging.removeHandler(handler)

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 在Django的模型中添加自定義方法的示例

    在Django的模型中添加自定義方法的示例

    這篇文章主要介紹了在Django的模型中添加自定義方法的示例,Django是Python豐富多彩的web開發(fā)框架中最具人氣的一個,需要的朋友可以參考下
    2015-07-07
  • 基于Python爬取愛奇藝資源過程解析

    基于Python爬取愛奇藝資源過程解析

    這篇文章主要介紹了基于Python爬取愛奇藝資源過程解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-03-03
  • 使用?Python?將?Excel?數(shù)據(jù)批量導(dǎo)入到SQLite數(shù)據(jù)庫中

    使用?Python?將?Excel?數(shù)據(jù)批量導(dǎo)入到SQLite數(shù)據(jù)庫中

    本文介紹了一種使用Python實現(xiàn)Excel文件導(dǎo)入SQLite數(shù)據(jù)庫的方法,無環(huán)境依賴,支持多工作表自動識別、動態(tài)創(chuàng)建表結(jié)構(gòu)和安全的數(shù)據(jù)插入,核心步驟包括加載Excel文件、連接數(shù)據(jù)庫、遍歷工作表、讀取表頭動態(tài)建表和逐行數(shù)據(jù)插入
    2026-04-04
  • 基于深度學(xué)習(xí)和OpenCV實現(xiàn)目標(biāo)檢測

    基于深度學(xué)習(xí)和OpenCV實現(xiàn)目標(biāo)檢測

    這篇文章主要介紹了通過使用OpenCV進行基于深度學(xué)習(xí)的對象檢測以及使用OpenCV檢測視頻,文中的示例代碼講解詳細,需要的可以參考一下
    2021-12-12
  • Python中Random和Math模塊學(xué)習(xí)筆記

    Python中Random和Math模塊學(xué)習(xí)筆記

    這篇文章主要介紹了Python中Random和Math模塊學(xué)習(xí)筆記,本文講解了math模塊的數(shù)學(xué)常量、常用簡單函數(shù)、三角函數(shù)等,講解了random模塊的常用函數(shù)、隨機挑選和排序等內(nèi)容,需要的朋友可以參考下
    2015-05-05
  • Django項目如何獲得SSL證書與配置HTTPS

    Django項目如何獲得SSL證書與配置HTTPS

    本文總結(jié)了如何獲得SSL證書并給Django項目配置HTTPS,建議先收藏再閱讀,將來有一天你很可能會用到它。
    2021-04-04
  • Python漏洞驗證程序Poc利用入門到實戰(zhàn)編寫

    Python漏洞驗證程序Poc利用入門到實戰(zhàn)編寫

    這篇文章主要為大家介紹了Python?Poc利用入門到實戰(zhàn)編寫實現(xiàn)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步

    2022-02-02
  • python單例模式實例解析

    python單例模式實例解析

    這篇文章主要為大家詳細介紹了python單例模式實例的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-08-08
  • Python中的Django框架基礎(chǔ)及安裝教程

    Python中的Django框架基礎(chǔ)及安裝教程

    本文介紹了Django框架的基本概念、安裝、項目創(chuàng)建和啟動方法,以及路由配置、ORM思想和使用,Django是一個全??蚣?遵循MTV模式,提供自動化工具和ORM,簡化了Web開發(fā)流程,感興趣的朋友跟隨小編一起看看吧
    2025-11-11
  • Python中chinesecalendar簡介、安裝、使用方法詳細講解

    Python中chinesecalendar簡介、安裝、使用方法詳細講解

    這篇文章主要介紹了Python中chinesecalendar簡介、安裝、使用方法詳細講解,該庫是判斷某年某月某一天是不是工作日/節(jié)假日。 支持 2004年 至 2023年,包括 2020年 的春節(jié)延長,需要的朋友可以參考下
    2023-03-03

最新評論

保靖县| 铅山县| 镇雄县| 台前县| 忻城县| 登封市| 西丰县| 胶南市| 孟津县| 庄浪县| 林芝县| 武乡县| 谢通门县| 普洱| 许昌县| 东乡县| 大邑县| 密云县| 尼玛县| 侯马市| 邵东县| 宁津县| 福贡县| 泾源县| 东乌珠穆沁旗| 东阿县| 邻水| 东乡族自治县| 礼泉县| 扶沟县| 刚察县| 盘锦市| 遂宁市| 夏邑县| 滦南县| 北海市| 阿瓦提县| 资源县| 尼木县| 阿图什市| 峡江县|