python 日志记录 用于debug 【copy 一位老兄的】

---------------------------------------
import sys
...
if __ name__== '__main__':
    oldStdout = sys. stdout
    sys. stdout = open( "script.log", "w+")
    print script.SchoolSong(Download())
    sys. stdout = oldStdout
----------------------------------------

使用pdb,调试。

Python自带了一个调试器叫pdb,和Gnu的gbd类似。下面用一个简单的程序来演示pdb的功能。程序代码如下:

#!/usr/bin/python

import pdb
a = "aaa"
pdb.set_trace()
b = "bbb"
c = "ccc"
final = a + b + c
print final

该程序已导入pdb模块,并在代码中添加的pdb.set_trace()跟踪点。现在让我们来运行该程序。

localhost:~/python/pdb# python pdbtest.py
--Return--
> /usr/lib/python2.3/pdb.py(992)set_trace()->None
-> Pdb().set_trace() # 从跟踪点开始执行
(Pdb) n # n 读入下一行代码
> /root/python/pdb/pdbtest.py(6)?()
-> b = "bbb"
(Pdb) n
> /root/python/pdb/pdbtest.py(7)?()
-> c = "ccc"
(Pdb) p b # p 打印变量值
'bbb'
(Pdb) l # l 显示当前执行位置
2
3 import pdb
4 a = "aaa"
5 pdb.set_trace()
6 b = "bbb"
7 -> c = "ccc"
8 final = a + b + c
9 print final
10
[EOF]
(Pdb) n
> /root/python/pdb/pdbtest.py(8)?()
-> final = a + b + c
(Pdb) n # 如果命令和上次的一样,也可直接按回车,不用输入'n'
> /root/python/pdb/pdbtest.py(9)?()
-> print final
(Pdb) n
aaabbbccc
--Return--
> /root/python/pdb/pdbtest.py(9)?()->None
-> print final
(Pdb) p a,b,c,final
('aaa', 'bbb', 'ccc', 'aaabbbccc')
(Pdb)
('aaa', 'bbb', 'ccc', 'aaabbbccc')
(Pdb) n
localhost:~/python/pdb# # 返回shell

pdb还有很多命令,用help命令就可以列出所有的pdb命令,用help p可以查询p命令的说明。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值