1 logging模塊簡介
logging模塊是Python內(nèi)置的標準模塊,主要用于輸出運行日志,可以設置輸出日志的等級、日志保存路徑、日志文件回滾等;相比print,具備如下優(yōu)點:
1.可以通過設置不同的日志等級,在release版本中只輸出重要信息,而不必顯示大量的調(diào)試信息;
2.print將所有信息都輸出到標準輸出中,嚴重影響開發(fā)者從標準輸出中查看其它數(shù)據(jù);logging則可以由開發(fā)者決定將信息輸出到什么地方,以及怎么輸出;
logging框架中主要由四個部分組成:
2 logging模塊使用
2.1 基本使用
配置logging基本的設置,然后在控制臺輸出日志,
import logginglogging.basicConfig(level = logging.INFO,format = '%(asctime)s - %(name)s - %(levelname)s - %(message)s')logger = logging.getLogger(__name__)logger.info("Start print log")logger.debug("Do something")logger.warning("Something maybe fail.")logger.info("Finish")運行時,控制臺輸出,
2016-10-09 19:11:19,434 - __main__ - INFO - Start print log
2016-10-09 19:11:19,434 - __main__ - WARNING - Something maybe fail.
2016-10-09 19:11:19,434 - __main__ - INFO - Finish
logging中可以選擇很多消息級別,如debug、info、warning、error以及critical。通過賦予logger或者handler不同的級別,開發(fā)者就可以只輸出錯誤信息到特定的記錄文件,或者在調(diào)試時只記錄調(diào)試信息。
例如,我們將logger的級別改為DEBUG,再觀察一下輸出結(jié)果,
代碼如下:logging.basicConfig(level = logging.DEBUG,format = '%(asctime)s - %(name)s - %(levelname)s - %(message)s')
控制臺輸出,可以發(fā)現(xiàn),輸出了debug的信息。
2016-10-09 19:12:08,289 - __main__ - INFO - Start print log
2016-10-09 19:12:08,289 - __main__ - DEBUG - Do something
2016-10-09 19:12:08,289 - __main__ - WARNING - Something maybe fail.
2016-10-09 19:12:08,289 - __main__ - INFO - Finish
logging.basicConfig函數(shù)各參數(shù):
filename:指定日志文件名;
filemode:和file函數(shù)意義相同,指定日志文件的打開模式,'w'或者'a';
format:指定輸出的格式和內(nèi)容,format可以輸出很多有用的信息,
參數(shù):作用
%(levelno)s:打印日志級別的數(shù)值
%(levelname)s:打印日志級別的名稱
%(pathname)s:打印當前執(zhí)行程序的路徑,其實就是sys.argv[0]
%(filename)s:打印當前執(zhí)行程序名
%(funcName)s:打印日志的當前函數(shù)
%(lineno)d:打印日志的當前行號
%(asctime)s:打印日志的時間
新聞熱點
疑難解答
圖片精選