2020-09-30
Python 北京Python培訓(xùn)
好程序員Python培訓(xùn)分享log日志功能及設(shè)置方法的詳細(xì)介紹,首先引入Python中有個(gè)logging模塊可以完成相關(guān)信息的記錄,在debug時(shí)用它往往事半功倍,下面一起跟隨小編過(guò)來(lái)看看吧。
一、日志級(jí)別(從低到高):
DEBUG:詳細(xì)的信息,通常只出現(xiàn)在診斷問(wèn)題上
INFO:確認(rèn)一切按預(yù)期運(yùn)行
WARNING:一個(gè)跡象表明,一些意想不到的事情發(fā)生了,或表明一些問(wèn)題在不久的將來(lái)(例如。磁盤(pán)空間低”)。這個(gè)軟件還能按預(yù)期工作。
ERROR:更嚴(yán)重的問(wèn)題,軟件沒(méi)能執(zhí)行一些功能
CRITICAL:一個(gè)嚴(yán)重的錯(cuò)誤,這表明程序本身可能無(wú)法繼續(xù)運(yùn)行
注:這5個(gè)等級(jí),也分別對(duì)應(yīng)5種打日志的方法:debug、info、warning、error、critical。默認(rèn)的是WARNING,當(dāng)在WARNING或之上時(shí)才被跟蹤。
二、日志輸出:顯示到控制臺(tái)或保存到文件中,可以靈活選用
# 這里為了簡(jiǎn)便,同時(shí)處理:輸出控制臺(tái)和保存到文件中
import logging
# diyi步,創(chuàng)建一個(gè)logger
logger = logging.getLogger()
logger.setLevel(logging.INFO) # Log等級(jí)總開(kāi)關(guān)
# 第二步,創(chuàng)建一個(gè)handler,用于寫(xiě)入日志文件
logfile = './log.txt'
fh = logging.FileHandler(logfile, mode='a') # open的打開(kāi)模式這里可以進(jìn)行參考
fh.setLevel(logging.DEBUG) # 輸出到file的log等級(jí)的開(kāi)關(guān)
# 第三步,再創(chuàng)建一個(gè)handler,用于輸出到控制臺(tái)
ch = logging.StreamHandler()
ch.setLevel(logging.WARNING) # 輸出到console的log等級(jí)的開(kāi)關(guān)
# 第四步,定義handler的輸出格式
formatter = logging.Formatter("%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s")
fh.setFormatter(formatter)
ch.setFormatter(formatter)
# 第五步,將logger添加到handler里面
logger.addHandler(fh)
logger.addHandler(ch)
# 日志
logger.debug('這是 logger debug message')
logger.info('這是 logger info message')
logger.warning('這是 logger warning message')
logger.error('這是 logger error message')
logger.critical('這是 logger critical message')
三、日志格式說(shuō)明
logging.basicConfig函數(shù)中,可以指定日志的輸出格式format,這個(gè)參數(shù)可以輸出很多有用的信息,如下:
%(levelno)s:打印日志級(jí)別的數(shù)值
%(levelname)s:打印日志級(jí)別名稱
%(pathname)s:打印當(dāng)前執(zhí)行程序的路徑,其實(shí)就是sys.argv[0]
%(filename)s:打印當(dāng)前執(zhí)行程序名
%(funcName)s:打印日志的當(dāng)前函數(shù)
%(lineno)d:打印日志的當(dāng)前行號(hào)
%(asctime)s:打印日志的時(shí)間
%(thread)d:打印線程ID
%(threadName)s:打印線程名稱
%(process)d:打印進(jìn)程ID
%(message)s:打印日志信息
以上就是關(guān)于好程序員Python培訓(xùn)之log日志功能及設(shè)置方法的全部?jī)?nèi)容
開(kāi)班時(shí)間:2021-04-12(深圳)
開(kāi)班盛況開(kāi)班時(shí)間:2021-05-17(北京)
開(kāi)班盛況開(kāi)班時(shí)間:2021-03-22(杭州)
開(kāi)班盛況開(kāi)班時(shí)間:2021-04-26(北京)
開(kāi)班盛況開(kāi)班時(shí)間:2021-05-10(北京)
開(kāi)班盛況開(kāi)班時(shí)間:2021-02-22(北京)
開(kāi)班盛況開(kāi)班時(shí)間:2021-07-12(北京)
預(yù)約報(bào)名開(kāi)班時(shí)間:2020-09-21(上海)
開(kāi)班盛況開(kāi)班時(shí)間:2021-07-12(北京)
預(yù)約報(bào)名開(kāi)班時(shí)間:2019-07-22(北京)
開(kāi)班盛況Copyright 2011-2023 北京千鋒互聯(lián)科技有限公司 .All Right 京ICP備12003911號(hào)-5 京公網(wǎng)安備 11010802035720號(hào)