logging
是 Python 內建的 log 紀錄器,可以利用這個模組來進行各種不同程度的 log 輸出,這樣可以省去程式開發完後一個一個把偵錯用的 print()
刪除的時間,直接把Debug level改成 INFO 以上就可以了,若要維護程式也可以再改回 DEBUG,但我每次都會忘記語法,於是來記錄一下順便和大家分享~
Using Python 3.8.3
引用套件
引入套件直接 import 即可 不用另外下載
import logging
Logging debug 等級
logging 把 debug level 分成六個等級,如下表所列,對應數值越小越敏感,logging只會紀錄數值大於設定值的紀錄。
用 type(logging.DEBUG)
查看會發現等級其實是 int 型別,也就是它只是別名,實際上print(logging.DEBUG)
也會是顯示10。
logging LEVEL | 意義 | 對應數值 |
---|---|---|
NOTSET | 未設定 | 0 |
DEBUG | 偵錯 | 10 |
INFO | 通知 | 20 |
WARNING | 警告 | 30 |
ERROR | 錯誤 | 40 |
CRITICAL | 嚴重錯誤 | 50 |
logging.DEBUG 的數值與型別
|
|
修改等級方法
在程式中指定偵錯等級的語法
logging.getLogger().setLevel(logging.LEVEL)
初始設定
logging.basicConfig(level=logging.INFO)
官方文件參數說明
Format | Description |
---|---|
filename | 指定 FileHandler,使用特定的檔案進行記錄而不是用 StreamHandler. |
filemode | 如果有指定 filename,則可用此參數指定開檔模式,預設是 'a' . |
format | 指定 handler 的格式字串 |
datefmt | 指定日期/時間格式, 接受time.strftime() 格式 |
style | If format is specified, use this style for the format string. One of '%' , '{' or '$' for printf-style, str.format() or string.Template respectively. Defaults to '%' . |
level | Set the root logger level to the specified level. |
stream | Use the specified stream to initialize the StreamHandler. Note that this argument is incompatible with filename - if both are present, a ValueError is raised. |
handlers | If specified, this should be an iterable of already created handlers to add to the root logger. Any handlers which don’t already have a formatter set will be assigned the default formatter created in this function. Note that this argument is incompatible with filename or stream - if both are present, a ValueError is raised. |
force | If this keyword argument is specified as true, any existing handlers attached to the root logger are removed and closed, before carrying out the configuration as specified by the other arguments. |