現(xiàn)在發(fā)現(xiàn)用logging更加方便。
默認(rèn)情況下Python的logging模塊將日志打印到了標(biāo)準(zhǔn)輸出中,且只顯示了大于等于WARNING級(jí)別的日志,這說(shuō)明默認(rèn)的日志級(jí)別設(shè)置為WARNING(日志級(jí)別等級(jí)CRITICAL > ERROR > WARNING > INFO > DEBUG > NOTSET),默認(rèn)的日志格式為日志級(jí)別:Logger名稱(chēng):用戶輸出消息。
在腳本開(kāi)始先寫(xiě):
import logging
logger = logging.getLogger()
logger.setLevel(logging.DEBUG) # Log等級(jí)總開(kāi)關(guān)
h = logging.StreamHandler()
h.setLevel(logging.INFO) # 輸出到console的log等級(jí)的開(kāi)關(guān)
formatter = logging.Formatter('%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s')
h.setFormatter(formatter)
logger.addHandler(h)
說(shuō)明一下logging.Formatter的格式化串:
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.info()
將顯示
可以看到顯示時(shí)間、腳本名稱(chēng)和行數(shù)
這樣調(diào)試將更加方便
通過(guò)將日志寫(xiě)入文件,將來(lái)分析錯(cuò)誤的時(shí)候會(huì)更加方便
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)
點(diǎn)擊舉報(bào)。