logging模塊學(xué)習(xí)

這個(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ō)明:
  1. filename: 指定log文件存放位置.
  2. filemode: 與filename搭配使用. 如果賦值為'w', 執(zhí)行生成的log會(huì)覆蓋上次的文件.
  3. level: 指定log的等級(jí). 比如賦值為logging.DEBUG, 則包括DEBUG以及比DEBUG更重要的等級(jí). 默認(rèn)的level值是logging.WARNING
  4. format: 需要對(duì)logRecord attributes引用. 引用方式為: %(attr)s
    logging.basicConfig(format='%(asctime)s %(message)s', ...)
  5. 如果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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容