一、使用pdb工具调试

命令 作用
b 设置断点
c 继续执行程序
l 查看当前行的代码段
s 进入函数
r 执行代码直到从当前函数返回
q 中止并退出
n 执行下一行
enter 重复执行上一条命令

使用方法

只要在想要调试的时候加入,代码运行到这里就会暂停

pdb.set_trace()


然后可以输入变量,查看此刻变量的值

输入c+enter,程序会继续执行直到遇到下一个断点

输入q+enter退出

二、使用日志进行调试

python中的日志模块logging也经常用作调试,logging分为5个级别

级别 使用情形
DEBUG 详细的信息,在追踪问题的时候使用
INFO 正常的信息
WARNING 一些不可预见的问题发生,或者将要发生,如磁盘空间低等,但不影响程序的运行
ERROR 由于某些严重的问题,程序中的一些功能受到影响
CRITICAL 严重的错误,或者程序本身不能够继续运行

使用方法

import logging

LOG1 = logging.getLogger('b.c')
LOG2 = logging.getLogger('d.e')
filehandler = logging.FileHandler('test.log', 'a')
formatter = logging.Formatter('%(name)s %(asctime)s %(levelname)s %(message)s')
filehandler.setFormatter(formatter)
filter = logging.Filter('b')
filehandler.addFilter(filter)
LOG1.addHandler(filehandler)
LOG2.addHandler(filehandler)
LOG1.setLevel(logging.INFO)
LOG2.setLevel(logging.DEBUG)
LOG1.debug('it is a debug info for log1')
LOG1.info('normal infor for log1')
LOG1.warning('warning info for log1:b.c')
LOG1.error('error info for log1:abcd')
LOG1.critical('critical info for log1:not worked')
LOG2.debug('debug info for log2')
LOG2.info('normal info for log2')
LOG2.warning('warning info for log2')
LOG2.error('error:b.c')
LOG2.critical('critical')
posted @ 2018-05-21 14:20:39
评论加载中...

发表评论