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