["python","exception","logging","python-logging"]
Logging uncaught exceptions in Python

How do you cause uncaught exceptions to output via the logging module rather than to stderr? I realize the best way to do this would be: try: raise Exception, 'Throwing a boring exception' except Exception, e: logging.exception(e) But my situation is such that it would be really nice if logging.exception(...) were invoked automatically whenever an exception isn't caught.
As Ned pointed out, sys.excepthook is invoked every time an exception is raised and uncaught. The practical implication of this is that in your code you can override the default behavior of sys.excepthook to do whatever you want (including using logging.exception). As a straw man example: import sys def foo(exctype, value, tb): print('My Error Information') print('Type:', exctype) print('Value:', value) print('Traceback:', tb) Override sys.excepthook: >>> sys.excepthook = foo Commit obvious syntax error (leave out the colon) and get back custom error information: >>> def bar(a, b) My Error Information Type: <type 'exceptions.SyntaxError'> Value: invalid syntax (<stdin>, line 1) Traceback: None For more information about sys.excepthook, read the docs.