用Python寫代碼的時候,在想看的地方寫個print xx 就能在控制臺上顯示打印信息,這樣子就能知道它是什么了,但是當我需要看大量的地方或者在一個文件中查看的時候,這時候print就不大方便了,所以Python引入了logging模塊來記錄我想要的信息。
print也可以輸入日志,logging相對print來說更好控制輸出在哪個地方,怎么輸出及控制消息級別來過濾掉那些不需要的信息。
1、日志級別
import logging # 引入logging模塊# 將信息打印到控制臺上logging.debug(u"蒼井空")logging.info(u"麻生希")logging.warning(u"小澤瑪利亞")logging.error(u"桃谷繪里香")logging.critical(u"瀧澤蘿拉")
回顯:

上面可以看到只有后面三個能打印出來
默認生成的root logger的level是logging.WARNING,低于該級別的就不輸出了
級別排序:CRITICAL > ERROR > WARNING > INFO > DEBUG
debug : 打印全部的日志,詳細的信息,通常只出現在診斷問題上
info : 打印info,warning,error,critical級別的日志,確認一切按預期運行
warning : 打印warning,error,critical級別的日志,一個跡象表明,一些意想不到的事情發生了,或表明一些問題在不久的將來(例如。磁盤空間低”),這個軟件還能按預期工作
error : 打印error,critical級別的日志,更嚴重的問題,軟件沒能執行一些功能
critical : 打印critical級別,一個嚴重的錯誤,這表明程序本身可能無法繼續運行
這時候,如果需要顯示低于WARNING級別的內容,可以引入NOTSET級別來顯示:
import logging # 引入logging模塊logging.basicConfig(level=logging.NOTSET) # 設置日志級別logging.debug(u"如果設置了日志級別為NOTSET,那么這里可以采取debug、info的級別的內容也可以顯示在控制臺上了")
回顯:

2、部分名詞解釋
Logging.Formatter:這個類配置了日志的格式,在里面自定義設置日期和時間,輸出日志的時候將會按照設置的格式顯示內容。
Logging.Logger:Logger是Logging模塊的主體,進行以下三項工作:
1. 為程序提供記錄日志的接口
2. 判斷日志所處級別,并判斷是否要過濾
3. 根據其日志級別將該條日志分發給不同handler
常用函數有:
Logger.setLevel() 設置日志級別
Logger.addHandler() 和 Logger.removeHandler() 添加和刪除一個Handler
Logger.addFilter() 添加一個Filter,過濾作用
Logging.Handler:Handler基于日志級別對日志進行分發,如設置為WARNING級別的Handler只會處理WARNING及以上級別的日志。
            
新聞熱點
疑難解答