這個(gè)模塊經(jīng)常用, 由于用法比較復(fù)雜, 老是用一次忘一次. 今天寫(xiě)一篇學(xué)習(xí)筆記, 加深印象. refer to: python tutorial
各個(gè)level的說(shuō)明(按等級(jí)高低排序):
levels | 說(shuō)明 |
---|---|
DEBUG | 用來(lái)診斷是否有bug的詳細(xì)信息 |
INFO | 確認(rèn)程序按預(yù)想的執(zhí)行 |
WARNING | 提示有不期望的事情發(fā)生, 或者可能會(huì)引起某些未來(lái)的問(wèn)題 |
ERROR | 提示某些更嚴(yán)重的信息, 已經(jīng)引起某些功能的喪失 |
CRITICAL | 提示某些更嚴(yán)重的錯(cuò)誤, 這些錯(cuò)誤會(huì)導(dǎo)致程序不能往下執(zhí)行 |
模塊使用:
首先需要logging.basicConfig()來(lái)配置, 以下是參數(shù)說(shuō)明:
- filename: 指定log文件存放位置.
- filemode: 與filename搭配使用. 如果賦值為'w', 執(zhí)行生成的log會(huì)覆蓋上次的文件.
- level: 指定log的等級(jí). 比如賦值為logging.DEBUG, 則包括DEBUG以及比DEBUG更重要的等級(jí). 默認(rèn)的level值是logging.WARNING
- format: 需要對(duì)logRecord attributes引用. 引用方式為: %(attr)s
logging.basicConfig(format='%(asctime)s %(message)s', ...)
- 如果format里使用了asctime, 那么datefmt參數(shù)可以配置時(shí)間顯示方式:
logging.basicConfig(format='%(asctime)s, datefmt='%m/%d/%Y %H:%M:%S')
其他用法:
可以在執(zhí)行python文件時(shí)命令行指定level等級(jí):
--log=INFO
在python文件中獲取:
numeric = getattr(logging, loglevel.upper(), None)
if not isinstance(numeric, int):
raise ValueError('Invalid log level %s' % loglevel)
logging.basicConfig(level=numeric, ....)
還有很多高階的用法, 一般用不到. 如果你感興趣, 可參考: advanced usage of logging