2012-01-02 4 views
6

साथ लॉग ऑन ट्रैस बैक जब मैं sys.excepthookअजगर किसी भी अपवाद को पकड़ने, और प्रिंट या चर मान

import sys 
import traceback 

def handleException(excType, excValue, trace): 
    print 'error' 
    traceback.print_exception(excType, excValue, trace) 

sys.excepthook = handleException 

h = 1 
k = 0 

print h/k 

साथ अनपेक्षित त्रुटि को पकड़ने यह आउटपुट है मैं

error 
Traceback (most recent call last): 
    File "test.py", line 13, in <module> 
     print h/k 
ZeroDivisionError: integer division or modulo by zero 

मिल रहा चर मान कैसे शामिल कर सकता (एच, के, ...) ट्रेसबैक सिमिलर में http://www.doughellmann.com/PyMOTW/cgitb/ पर? जब मैं cgitb परिणाम शामिल करता हूं वही है।

संपादित करें:

महान जवाब मैं केवल इस तरह इसे संशोधित तो यह पता लगाने के लिए एक फ़ाइल

def handleException(excType, excValue, trace): 
    cgitb.Hook(logdir=os.path.dirname(__file__), 
     display=False, 
     format='text')(excType, excValue, trace) 

उत्तर

8

में लॉग cgitb.py के स्रोत को देख कर, आप की तरह कुछ का उपयोग करने के लिए सक्षम होना चाहिए इस:

import sys 
import traceback 
import cgitb 

def handleException(excType, excValue, trace): 
    print 'error' 
    cgitb.Hook(format="text")(excType, excValue, trace) 

sys.excepthook = handleException 

h = 1 
k = 0 

print h/k 
संबंधित मुद्दे