调试的方法有很多种,pdb, ide调试打印输出信息等。但是,对于大型程序,使用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)
输出到日志文件的内容
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为什么不起作用,这里先记录一下,回头再看。
代码分析
明白了,前面有设定 level = logging.INFO, 所以看不到DEGUB的输出信息。修改为 level = logging.DEBUG 即可。在信息等级中,CRITICAL > ERROR > WARNING > INFO > DEBUG > NOTSET。
用这样的方式,将可能出错的信息或者程序中的执行信息输出到文件,是一个比较好的调试办法