Python-logging日志模塊

日志

日志是跟蹤軟件運(yùn)行時(shí)所發(fā)生的事件的一種方法。軟件開(kāi)發(fā)者在代碼中調(diào)用日志函數(shù),表明發(fā)生了特定的事件。事件由描述性消息描述,該描述性消息可以可選地包含可變數(shù)據(jù)(即,對(duì)于事件的每次出現(xiàn)都潛在地不同的數(shù)據(jù))。事件還具有開(kāi)發(fā)者歸因于事件的重要性;重要性也可以稱為級(jí)別或嚴(yán)重性。

logging日志等級(jí)

logging模塊默認(rèn)定義了以下五種日志等級(jí):

  • DEBUG
    ? 最詳細(xì)日志信息, 多用于問(wèn)題診斷
  • INFO
    ? 僅次于DEBUG, 多用于記錄關(guān)鍵點(diǎn)信息, 確保程序按預(yù)期執(zhí)行
  • WARNING
    ? 低等級(jí)故障, 但程序仍能運(yùn)行, 如磁盤空間不足警告
  • ERROR
    ? 由于比WARNING嚴(yán)重的問(wèn)題, 導(dǎo)致某些功能不能正常運(yùn)行
  • CRITICAL
    ? 嚴(yán)重錯(cuò)誤, 導(dǎo)致應(yīng)用程序不能繼續(xù)運(yùn)行

默認(rèn)等級(jí)是WARNING,即僅僅這個(gè)等級(jí)及以上的才會(huì)反饋信息,DEBUG和INFO均不會(huì)被反饋。

常用函數(shù)

  • logging.debug(msg)
    logging.info(msg)
    logging.warning(msg)
    logging.error(msg)
    logging.critical(msg)
    上述五個(gè)函數(shù)可分別設(shè)置其對(duì)應(yīng)級(jí)別的日志信息內(nèi)容
    msg--字符串格式,內(nèi)容即輸出日志信息
  • logging.basicConfig(**kwargs)
    為日志模塊配置基本信息。設(shè)置后可以直接使用logging來(lái)打印日志,其常用關(guān)鍵字參數(shù)如下:
    • filename: 日志文件的保存路徑。如果配置了該參數(shù),將自動(dòng)創(chuàng)建一個(gè)FileHandler作為Handler;
    • filemode: 日志文件的打開(kāi)模式。 默認(rèn)值為’a’,表示日志消息以追加的形式添加到日志文件中。如果設(shè)為’w’, 那么每次程序啟動(dòng)的時(shí)候都會(huì)創(chuàng)建一個(gè)新的日志文件;
    • datefmt: 指定時(shí)間格式,同time.strftime()
    • level: 設(shè)置日志級(jí)別,默認(rèn)為logging.WARNING
    • stream: 設(shè)置特定的流用于初始化StreamHandler;指定日志的輸出流,可以指定輸出到sys.stderr,sys.stdout或者文件,默認(rèn)輸出到sys.stderr,當(dāng)stream和filename同時(shí)指定時(shí),stream被忽略
    • format: 指定輸出的格式和內(nèi)容
      format參數(shù)中可能用到的格式化串如下:
      %(name)s Logger的名字
      %(levelno)s 數(shù)字形式的日志級(jí)別
      %(levelname)s 文本形式的日志級(jí)別
      %(pathname)s 調(diào)用日志輸出函數(shù)的模塊的完整路徑名,可能沒(méi)有
      %(filename)s 調(diào)用日志輸出函數(shù)的模塊的文件名
      %(module)s 調(diào)用日志輸出函數(shù)的模塊名
      %(funcName)s 調(diào)用日志輸出函數(shù)的函數(shù)名
      %(lineno)d 調(diào)用日志輸出函數(shù)的語(yǔ)句所在的代碼行
      %(created)f 當(dāng)前時(shí)間,用UNIX標(biāo)準(zhǔn)的表示時(shí)間的浮 點(diǎn)數(shù)表示
      %(relativeCreated)d 輸出日志信息時(shí)的,自Logger創(chuàng)建以 來(lái)的毫秒數(shù)
      %(asctime)s 字符串形式的當(dāng)前時(shí)間。默認(rèn)格式是 “2003-07-08 16:49:45,896”。逗號(hào)后面的是毫秒
      %(thread)d 線程ID??赡軟](méi)有
      %(threadName)s 線程名??赡軟](méi)有
      %(process)d 進(jìn)程ID??赡軟](méi)有
      %(message)s 用戶輸出的消息
  • logging.getLogger([name])
    創(chuàng)建Logger對(duì)象。日志記錄的工作主要由Logger對(duì)象來(lái)完成。在調(diào)用getLogger時(shí)要提供Logger的名稱(使用相同名稱來(lái)調(diào)用getLogger,返回的是同一個(gè)對(duì)象的引用。),Logger實(shí)例之間有層次關(guān)系,這些關(guān)系通過(guò)Logger名稱來(lái)體現(xiàn),如:
    p = logging.getLogger(“root”)
    c1 = logging.getLogger(“root.c1”)
    c2 = logging.getLogger(“root.c2”)
    例子中,p是父logger, c1,c2分別是p的子logger。c1, c2將繼承p的設(shè)置。如果省略了name參數(shù), getLogger將返回日志對(duì)象層次關(guān)系中的根Logger。
  • logging.StreamHandler
  • logging.FileHandler
  • logging.Formatter
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 本篇文章主要對(duì) python logging 的介紹加深理解。更主要是 討論在多進(jìn)程環(huán)境下如何使用logging ...
    doudou0o閱讀 41,413評(píng)論 52 42
  • 1、import logging logging.basicConfig(level=logging.DEBUG,...
    SkTj閱讀 202評(píng)論 0 8
  • (一)、日志相關(guān)概念 1、日志的作用 通過(guò)log的分析,可以方便用戶了解系統(tǒng)或軟件、應(yīng)用的運(yùn)行情況;如果你的應(yīng)用l...
    Rainy丶Wang閱讀 668評(píng)論 0 0
  • logging模塊介紹: logging是python內(nèi)置的標(biāo)準(zhǔn)庫(kù)模塊,模塊提供不同的日志級(jí)別,并可以采用不同的方...
    4ffde5305e8f閱讀 3,000評(píng)論 0 2
  • 也許你一生中走錯(cuò)了不少路 看錯(cuò)不少人 承受了許多的背叛 落魄得狼狽不堪 但都無(wú)所謂 只要還活著 就總有希望 余生很...
    莊小多閱讀 275評(píng)論 0 1

友情鏈接更多精彩內(nèi)容