【Python】代码调试(pdb与logging使用)

时间:2014-05-14 10:21:29   收藏:0   阅读:594

一、pdb使用

pdb 是 python 自带的一个包,为 python 程序提供了一种交互的源代码调试功能,主要特性包括设置断点、单步调试、进入函数调试、查看当前代码、查看栈片段、动态改变变量的值等。

在程序中间插入一段程序(import pdb     pdb.set_trace() ),相对于在一般IDE里面打上断点然后启动debug,不过这种方式是hardcode的

1、加入断点

bubuko.com,布布扣
#!/usr/bin/python 
import pdb 
 
_DEBUG = True 
def debug_demo(val): 
    if _DEBUG == True: 
        pdb.set_trace() 
    if val <= 1600 : 
        print "level 1" 
        print 0 
    elif val <= 3500 : 
        print "level 2" 
        print (val - 1600) * 0.05 
    elif val <= 6500 : 
        print "level 3" 
        print (val - 3500) * 0.10 + (3500 - 1600) * 0.05 
    else: 
        print "level 4" 
        print (val - 6500) * 0.20 + (6500 - 3500) * 0.10 + (3500 - 1600) * 0.05 


# ~def debug_demo                 

if __name__ == "__main__": 
    debug_demo(4500)
bubuko.com,布布扣
 

2、开始调试

bubuko.com,布布扣

bubuko.com,布布扣

二、logging使用

bubuko.com,布布扣
# encoding:utf-8
import logging
 
log1 = logging.getLogger(a.b.c) 
log2 = logging.getLogger(a.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(a) 
filehandler.addFilter(filter) 

log1.addHandler(filehandler) 
log2.addHandler(filehandler) 

log1.setLevel(logging.DEBUG) 
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)
bubuko.com,布布扣

bubuko.com,布布扣

logging lib 包含 4 个主要对象

【Python】代码调试(pdb与logging使用),布布扣,bubuko.com

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!