日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python——logging模块

發布時間:2025/3/18 python 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python——logging模块 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

簡介:?

日志是一種可以追蹤某些軟件運行時所發生事件的方法。軟件開發人員可以向他們的代碼中調用日志記錄相關的方法來表明發生了某些事情。不同的事件,被區分在不同的等級中,故通過log分析,可以很輕易地分析得到該應用的健康狀況,及時發現問題并快速定位、解決問題,補救損失。python自帶的模塊logging可以實現日志的記錄功能,其下的日志級別共分為五個級別,級別順序為debug<info<warning<error<critical。logging模塊指定日志記錄器的日志級別,只有級別大于或等于該指定日志級別的日志記錄才會被輸出,小于該等級的日志記錄將會被丟棄。

日志的模塊使用

  • 定義模塊級別函數:用于指定觸發這個級別所報出的信息,通用方法是logging.log(level,*args,**kwargs),參數level是日志的等級。
  • 對日志進行基本配置:logging.basicConfig(**kwargs),可選參數如下:
  • 日志的四大組件:loggers、handlers、filters、formatters。四大組件的應用在下面會介紹。

logging模塊提供的模塊級別的那些函數實際上也是通過這幾個組件的相關實現類來記錄日志的,只是在創建這些類的實例時設置了一些默認值。

  • 格式字符化輸出:formatters控制日志信息輸出格式,在這個模塊內已經封裝好了自己的格式,如下圖所示:

代碼實例

經過簡單配置,輸出日志記錄。

import logging logging.basicConfig(level= logging.DEBUG,filename='basic.log',format= '時間:%(asctime)s,''日志級別:%(levelname)s,''日志信息:%(message)s,''日志名字:%(name)s')logging.debug("This is a debug log.") logging.info("This is a info log.") logging.warning("This is a warning log.") logging.error("This is a error log.") logging.critical("This is a critical log.") 時間:2018-10-11 16:46:45,355,日志級別:DEBUG,日志信息:This is a debug log.,日志名字:root 時間:2018-10-11 16:46:45,355,日志級別:INFO,日志信息:This is a info log.,日志名字:root 時間:2018-10-11 16:46:45,355,日志級別:WARNING,日志信息:This is a warning log.,日志名字:root 時間:2018-10-11 16:46:45,356,日志級別:ERROR,日志信息:This is a error log.,日志名字:root 時間:2018-10-11 16:46:45,356,日志級別:CRITICAL,日志信息:This is a critical log.,日志名字:root

可以發現默認情況下,日志名字為root。

利用四大組件,認識日志處理流程。

  • 日志初始化
  • 設置日志級別
  • 定義handler:主要有StreamHandler和FileHandler。
  • 控制格式化輸出
  • 啟動日志文件
  • import logging logger = logging.getLogger("test")#初始化#設置級別 logger.setLevel(logging.DEBUG)#定義handler#控制臺輸出 sh = logging.StreamHandler() sh.setLevel(logging.ERROR)#文件輸出 fh = logging.FileHandler('test.log') fh.setLevel(logging.DEBUG)#格式化輸出 format = logging.Formatter('時間:%(asctime)s,''日志級別:%(levelname)s,'#逗號寫在里面'日志信息:%(message)s,''日志名字:%(name)s' ) #將格式化傳到控制臺和文件 sh.setFormatter(format) fh.setFormatter(format)#啟動日志文件 logger.addHandler(sh) logger.addHandler(fh)if __name__ == '__main__':def f(a):#日志記錄函數try:res = 5.0/alogger.info("正常運行")except Exception as e:logger.error(e)f(0) 時間:2018-10-11 16:55:57,156,日志級別:ERROR,日志信息:float division by zero,日志名字:test

    簡單點說就是:日志器(logger)是入口,真正干活兒的是處理器(handler),處理器(handler)還可以通過過濾器(filter)和格式器(formatter)對要輸出的日志內容做過濾和格式化等處理操作。

    轉載于:https://www.cnblogs.com/longwhite/p/10397703.html

    與50位技術專家面對面20年技術見證,附贈技術全景圖

    總結

    以上是生活随笔為你收集整理的python——logging模块的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。