Considering the following errornous function:
def inner():
raise Exception("message")
If I run the function I get an error like:
Traceback (most recent call last):
File "/Applications/PyCharm.app/Contents/plugins/python/helpers/pydev/pydevconsole.py", line 364, in runcode
coro = func()
^^^^^^
File "<input>", line 1, in <module>
File "<input>", line 2, in inner
Exception: message
Now I wish for logging purposes to get this kind of error messaging into code, what I tried was using traceback.format_exc() as well as unpacking sys.exc_info()
def outer():
try:
inner()
except Exception as e:
exc_type, exc_obj, exc_tb = sys.exc_info()
print(exc_type)
print(exc_obj)
print(exc_tb)
print(traceback.format_tb(exc_tb))
print(traceback.format_exc())
which gives:
>>> outer()
<class 'Exception'>
message
<traceback object at 0x10affca00>
[' File "<input>", line 3, in outer\n', ' File "<input>", line 2, in inner\n']
Traceback (most recent call last):
File "<input>", line 3, in outer
File "<input>", line 2, in inner
Exception: message
While format_exc() correctly formats the latter part, it does not include the import "line" information
/Applications/PyCharm.app/Contents/plugins/python/helpers/pydev/pydevconsole.py", line 364, in runcode
coro = func()
How would I get that information and log that?