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

簡單實用:

# -*- coding:utf-8 -*-
import logging

logging.debug('debug message')
logging.info('info message')
logging.warn('warn message')
logging.error('error message')
logging.critical('critical message')

輸出

WARNING:root:warn message
ERROR:root:error message
CRITICAL:root:critical message

由此可知,默認(rèn)配置為:

默認(rèn)等級:warning
默認(rèn)格式:%(levelname)s -%(name)s - %(message)s'
默認(rèn)名稱:root


默認(rèn)配置

日志等級

從上到下等級從低到高
-DEBUG:詳細(xì)信息,典型地調(diào)試問題時會感興趣
-INFO:證明事情按預(yù)期工作
-WARNING:明發(fā)生了一些意外,或者不久的將來會發(fā)生問題(如‘磁盤滿了’)。軟件還是在正常工作
-ERROR:由于更嚴(yán)重的問題,軟件已不能執(zhí)行一些功能了
-CRITICAL:嚴(yán)重錯誤,表明軟件已不能繼續(xù)運行了

幾個重要的概念

-Logger 記錄器,暴露了應(yīng)用程序代碼能直接使用的接口。
-Handler 處理器,將(記錄器產(chǎn)生的)日志記錄發(fā)送至合適的目的地。
-Filter 過濾器,提供了更好的粒度控制,它可以決定輸出哪些日志記錄。
-Formatter 格式化器,指明了最終輸出中日志記錄的布局。

原理

樹形結(jié)構(gòu)

樹形結(jié)構(gòu)

工作流程

工作流程

簡單應(yīng)用

# encoding: utf-8
#@author: chenjunhua
#time: 2019/1/10 11:52


import logging

#輸出格式
formatter = logging.Formatter('%(filename)s-%(lineno)d-%(asctime)s-%(levelname)s - %(message)s')

#輸出到文件
handler = logging.FileHandler("log.txt")
handler.setLevel(logging.CRITICAL)
handler.setFormatter(formatter)

#輸出到屏幕
console = logging.StreamHandler()
console.setFormatter(formatter)
console.setLevel(logging.INFO)

logger = logging.getLogger(__name__)
logger.setLevel(level = logging.INFO)
logger.addHandler(handler)
logger.addHandler(console)



if __name__ == '__main__':
    logger.info("Start print log")
    logger.debug("Do something")
    logger.warning("Something maybe fail.")
    logger.info("Finish")

有用的format格式

格式 描述
%(levelno)s 打印日志級別的數(shù)值
%(levelname)s 打印日志級別名稱
%(pathname)s 打印當(dāng)前執(zhí)行程序的路徑
%(filename)s 打印當(dāng)前執(zhí)行程序名稱
%(funcName)s 打印日志的當(dāng)前函數(shù)
%(lineno)d 打印日志的當(dāng)前行號
%(asctime)s 打印日志的時間
%(thread)d 打印線程id
%(threadName)s 打印線程名稱
%(process)d 打印進(jìn)程ID
%(message)s 打印日志信息

參考文章

python logging模塊
python logging模塊使用教程

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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

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