1.logging 模塊的日志級別
- DEBUG:最詳細的日志資訊,典型應用場景是 問題診斷
- INFO:資訊詳細程度僅次于DEBUG,通常只記錄關鍵節點資訊,用于確認一切都是按照我們預期的那樣進行作業
- WARNING:當某些不期望的事情發生時記錄的資訊(如,磁盤可用空間較低),但是此時應用程式還是正常運行的
- ERROR:由于一個更嚴重的問題導致某些功能不能正常運行時記錄的資訊
- CRITICAL:當發生嚴重錯誤,導致應用程式不能繼續運行時記錄的資訊
2.logging 模塊定義的模塊級別的常用函式
- logging.debug(msg, *args, **kwargs) -- 創建一條嚴重級別為DEBUG的日志記錄
- logging.info(msg, *args, **kwargs) -- 創建一條嚴重級別為INFO的日志記錄
- logging.warning(msg, *args, **kwargs) -- 創建一條嚴重級別為WARNING的日志記錄
- logging.error(msg, *args, **kwargs) -- 創建一條嚴重級別為ERROR的日志記錄
- logging.critical(msg, *args, **kwargs) -- 創建一條嚴重級別為CRITICAL的日志記錄
- logging.log(level, *args, **kwargs) -- 創建一條嚴重級別為level的日志記錄
- logging.basicConfig(**kwargs) -- 對root logger進行一次性配置
import logging logging.debug("debug_msg") logging.info("info_msg") logging.warning("warning_msg") logging.error("error_msg") logging.critical("critical_msg") #輸出結果如下: 2020-03-02 14:27:13,304 WARNING warning_msg 2020-03-02 14:27:13,304 ERROR error_msg 2020-03-02 14:27:13,304 CRITICAL critical_msg # 默認情況下 Python 的 logging 模塊將日志列印到了標準輸出中,且只顯示了大于等于 WARNING 級別的日志,這說明默認的日志級別設定為 WARNING(日志級別等級 CRITICAL > ERROR > WARNING > INFO > DEBUG)
#這里可以用 logging.basicConfig() 函式調整日志級別、輸出格式等 import logging logging.basicConfig(level=logging.DEBUG,format="%(asctime)s %(levelname)s %(message)s") logging.debug("debug_msg") logging.info("info_msg") logging.warning("warning_msg") logging.error("error_msg") logging.critical("critical_msg") #輸出結果如下: 2020-03-02 14:30:38,122 DEBUG debug_msg 2020-03-02 14:30:38,122 INFO info_msg 2020-03-02 14:30:38,122 WARNING warning_msg 2020-03-02 14:30:38,122 ERROR error_msg 2020-03-02 14:30:38,122 CRITICAL critical_msg
3.logging.basicConfig()函式包含引數說明
| 引數名稱 | 描述 |
|---|---|
| filename | 指定日志輸出目標檔案的檔案名(可以寫檔案名也可以寫檔案的完整的絕對路徑,寫檔案名日志放執行檔案目錄下,寫完整路徑按照完整路徑生成日志檔案),指定該設定項后日志信心就不會被輸出到控制臺了 |
| filemode | 指定日志檔案的打開模式,默認為'a',需要注意的是,該選項要在filename指定時才有效 |
| format | 指定日志格式字串,即指定日志輸出時所包含的欄位資訊以及它們的順序,logging模塊定義的格式欄位下面會列出, |
| datefmt | 指定日期/時間格式,需要注意的是,該選項要在format中包含時間欄位%(asctime)s時才有效 |
| level | 指定日志器的日志級別 |
| stream | 指定日志輸出目標stream,如sys.stdout、sys.stderr以及網路stream,需要說明的是,stream和filename不能同時提供,否則會引發 ValueError例外 |
| style | Python 3.2中新添加的配置項,指定format格式字串的風格,可取值為'%'、'{'和'$',默認為'%' |
| handlers | Python 3.3中新添加的配置項,該選項如果被指定,它應該是一個創建了多個Handler的可迭代物件,這些handler將會被添加到root logger,需要說明的是:filename、stream和handlers這三個配置項只能有一個存在,不能同時出現2個或3個,否則會引發ValueError例外, |
4.logging模塊中定義好的可以用于format格式字串說明
| 欄位/屬性名稱 | 使用格式 | 描述 |
|---|---|---|
| asctime | %(asctime)s | 將日志的時間構造成可讀的形式,默認情況下是‘2016-02-08 12:00:00,123’精確到毫秒 |
| name | %(name)s | 所使用的日志器名稱,默認是'root',因為默認使用的是 rootLogger |
| filename | %(filename)s | 呼叫日志輸出函式的模塊的檔案名; pathname的檔案名部分,包含檔案后綴 |
| funcName | %(funcName)s | 由哪個function發出的log, 呼叫日志輸出函式的函式名 |
| levelname | %(levelname)s | 日志的最終等級(被filter修改后的) |
| message | %(message)s | 日志資訊, 日志記錄的文本內容 |
| lineno | %(lineno)d | 當前日志的行號, 呼叫日志輸出函式的陳述句所在的代碼行 |
| levelno | %(levelno)s | 該日志記錄的數字形式的日志級別(10, 20, 30, 40, 50) |
| pathname | %(pathname)s | 完整路徑 ,呼叫日志輸出函式的模塊的完整路徑名,可能沒有 |
| process | %(process)s | 當前行程, 行程ID,可能沒有 |
| processName | %(processName)s | 行程名稱,Python 3.1新增 |
| thread | %(thread)s | 當前執行緒, 執行緒ID,可能沒有 |
| threadName | %(thread)s | 執行緒名稱 |
| module | %(module)s | 呼叫日志輸出函式的模塊名, filename的名稱部分,不包含后綴即不包含檔案后綴的檔案名 |
| created | %(created)f | 當前時間,用UNIX標準的表示時間的浮點數表示; 日志事件發生的時間--時間戳,就是當時呼叫time.time()函式回傳的值 |
| relativeCreated | %(relativeCreated)d | 輸出日志資訊時的,自Logger創建以 來的毫秒數; 日志事件發生的時間相對于logging模塊加載時間的相對毫秒數 |
| msecs | %(msecs)d | 日志事件發生事件的毫秒部分,logging.basicConfig()中用了引數datefmt,將會去掉asctime中產生的毫秒部分,可以用這個加上 |
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/186237.html
標籤:Python
