New submission from Walter Mundt:
The documentation for the traceback module states that it "exactly mimics the
behavior of the Python interpreter when it prints a stack trace." However,
this does not seem to be the case. In Python 2.7.3, executing the following:
import socket
import sys
import traceback
def raises_socket_timeout():
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.settimeout(0.001)
s.connect(('8.8.8.8', 9999))
try:
raises_socket_timeout()
except Exception:
print "print_exc():"
traceback.print_exc()
print "-------------"
print "uncaught:"
raise
Results in this output:
print_exc():
Traceback (most recent call last):
File "test.py", line 11, in <module>
raises_socket_timeout()
File "test.py", line 8, in raises_socket_timeout
s.connect(('8.8.8.8', 9999))
File "/usr/lib/python2.7/socket.py", line 224, in meth
return getattr(self._sock,name)(*args)
timeout: timed out
-------------
uncaught:
Traceback (most recent call last):
File "test.py", line 11, in <module>
raises_socket_timeout()
File "test.py", line 8, in raises_socket_timeout
s.connect(('8.8.8.8', 9999))
File "/usr/lib/python2.7/socket.py", line 224, in meth
return getattr(self._sock,name)(*args)
socket.timeout: timed out
Note that the last line of the former message is "timeout: timed out" while the
latter is "socket.timeout: timed out" (much more informative). I've run into
this specific difference in trying to debug production systems that use the
traceback module to log exceptions. It also affects traceback.format_exc(),
traceback.format_exception_only(), logging.exception(), and logging.info(...,
exc_info=True) and friends.
----------
messages: 178991
nosy: waltermundt
priority: normal
severity: normal
status: open
title: traceback module leaves off module name in last line of formatted
tracebacks
type: behavior
versions: Python 2.7
_______________________________________
Python tracker <[email protected]>
<http://bugs.python.org/issue16855>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com