調(diào)試的方法有很多種,pdb, ide調(diào)試打印輸出信息等。但是,對于大型程序唤蔗,使用logging 才是最有效率的
代碼如下
import logging
logging.basicConfig(level = logging.INFO,
filename = 'log.log',
filemode = 'w',
datefmt='%a, %d %b %Y %H:%M:%S',
format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s')
s = '0'
n = int(s)
logging.debug('n = %d' % n)
logging.info('n = %d' % n)
logging.error('n = %d' % n)
logging.warning('n = %d' % n)
print(10 / n)
輸出到日志文件的內(nèi)容
Mon, 04 Jun 2018 08:41:15 test2.py[line:32] INFO n = 0
Mon, 04 Jun 2018 08:41:15 test2.py[line:34] ERROR n = 0
Mon, 04 Jun 2018 08:41:15 test2.py[line:35] WARNING n = 0
代碼分析
沒看懂logging.debug為什么不起作用,這里先記錄一下窟赏,回頭再看妓柜。
代碼分析
明白了,前面有設(shè)定 level = logging.INFO, 所以看不到DEGUB的輸出信息涯穷。修改為 level = logging.DEBUG 即可棍掐。在信息等級中,CRITICAL > ERROR > WARNING > INFO > DEBUG > NOTSET拷况。
用這樣的方式作煌,將可能出錯的信息或者程序中的執(zhí)行信息輸出到文件,是一個比較好的調(diào)試辦法