Python的內建模組logging詳解

2021-08-31 03:55:54 字數 2620 閱讀 5556

logging模組是python內建的標準模組,主要用於輸出執行日誌,可以設定輸出日誌的等級、日誌儲存路徑、日誌檔案回滾等;相比print,具備如下優點:

python 使用logging模組記錄日誌涉及四個主要類,使用官方文件中的概括最為合適:

模組級函式

基本使用

配置logging基本的設定,然後在控制台輸出日誌:

import logging

logging.basicconfig(level = logging.info,

format

='%(asctime)s - %(name)s - %(levelname)s - %(message)s'

)logger = logging.getlogger(__name__)

logger.info(

"start print log"

)logger.debug(

"do something"

)logger.warning(

"something maybe fail."

)logger.info(

"finish"

)

輸出:

2018-06

-1015:

09:03,

001- __main__ - info - start print log

2018-06

-1015:

09:03,

015- __main__ - warning - something maybe fail.

2018-06

-1015:

09:03,

017- __main__ - info - finish

logging中可以選擇很多訊息級別,如debug、info、warning、error以及critical。通過賦予logger或者handler不同的級別,開發者就可以只輸出錯誤資訊到特定的記錄檔案,或者在除錯時只記錄除錯資訊 例如,我們將logger的級別改為debug,再觀察一下輸出結果:

import logging

logging.basicconfig(level = logging.debug,

format

='%(asctime)s - %(name)s - %(levelname)s - %(message)s'

)logger = logging.getlogger(__name__)

logger.info(

"start print log"

)logger.debug(

"do something"

)logger.warning(

"something maybe fail."

)logger.info(

"finish"

)

輸出:

2018-06

-1015:

13:07,

300- __main__ - info - start print log

2018-06

-1015:

13:07,

315- __main__ - debug - do something

2018-06

-1015:

13:07,

318- __main__ - warning - something maybe fail.

2018-06

-1015:

13:07,

325- __main__ - info - finish

控制台輸出,可以發現,輸出了debug的資訊。

logging.basicconfig函式各引數:

filename:指定日誌檔名;

filemode:和file函式意義相同,指定日誌檔案的開啟模式,『w』或者』a』;

format:指定輸出的格式和內容,format可以輸出很多有用的資訊,

引數:作用

%(levelno)s:列印日誌級別的數值

%(levelname)s:列印日誌級別的名稱

%(pathname)s:列印當前執行程式的路徑,其實就是sys.argv[0]

%(filename)s:列印當前執行程式名

%(funcname)s:列印日誌的當前函式

%(lineno)d:列印日誌的當前行號

%(asctime)s:列印日誌的時間

%(thread)d:列印執行緒id

%(threadname)s:列印執行緒名稱

%(process)d:列印程序id

%(message)s:列印日誌資訊

datefmt:指定時間格式,同time.strftime();

level:設定日誌級別,預設為logging.warnning;

stream:指定將日誌的輸出流,可以指定輸出到sys.stderr,sys.stdout或者檔案,預設輸出到sys.stderr,當stream和filename同時指定時,stream被忽略;

參考 (更高階一點的用法參考這本書)

(這個寫的很好,參考這個)

python內建模組 Python 內建模組

內建模組 python有一套很有用的標準庫 standard library 標準庫會隨著python直譯器,一起安裝在你的電腦中的。它是python的 乙個組成部分。這些標準庫是python為你準備好的利器,可以讓程式設計事半功倍。常用標準庫 標準庫 說明 builtins 內建函式預設載入 os...

Python的內建模組

1 導包 導模組 import 模組名稱 包名稱 以os模組為例 通過dir 可以檢視該模組下的所有命令 import 包名稱 as 以os.path模組為例 給os.path重新命名,加快導包速度。from 包名稱 import 建議使用方法 以os.path模組為例 2 os模組 os.cpu ...

Python內建模組

os.remove 刪除檔案 os.unlink 刪除檔案 os.rename 重新命名檔案 os.listdir 列出指定目錄下所有檔案 os.curdir 返回當前目錄 os.pardir 獲取當前目錄的父目錄字串名 os.chdir 改變當前工作目錄 os.getcwd 獲取當前檔案路徑 os...