python 日誌記錄 用於debug 【copy 一位老兄的】

來源:互聯網
上載者:User
---------------------------------------
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命令的說明。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.