diff options
| author | Scott Gasch <[email protected]> | 2022-04-08 07:01:56 -0700 |
|---|---|---|
| committer | Scott Gasch <[email protected]> | 2022-04-08 07:01:56 -0700 |
| commit | 109b44cad185a1feba471646981e4c1963439399 (patch) | |
| tree | eb1e718149bea05af762d2b51404b0f867e81b82 | |
| parent | b69d402dc503a0d38381bfa0fcd6dd5829e92775 (diff) | |
More messing with making sure that exception tracebacks end up in the log.
| -rw-r--r-- | bootstrap.py | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/bootstrap.py b/bootstrap.py index a4923b4..1fcdec3 100644 --- a/bootstrap.py +++ b/bootstrap.py @@ -93,24 +93,24 @@ def handle_uncaught_exception(exc_type, exc_value, exc_tb): sys.__excepthook__(exc_type, exc_value, exc_tb) return else: + import io + import traceback + + tb_output = io.StringIO() + traceback.print_tb(exc_tb, None, tb_output) + print(tb_output.getvalue(), file=sys.stderr) + logger.error(tb_output.getvalue()) + tb_output.close() + + # stdin or stderr is redirected, just do the normal thing if not sys.stderr.isatty() or not sys.stdin.isatty(): - # stdin or stderr is redirected, just do the normal thing ORIGINAL_EXCEPTION_HOOK(exc_type, exc_value, exc_tb) - else: - # a terminal is attached and stderr is not redirected, maybe debug. - import io - import traceback - - tb_output = io.StringIO() - traceback.print_tb(exc_tb, None, tb_output) - print(tb_output.getvalue(), file=sys.stderr) - logger.error(tb_output.getvalue()) - tb_output.close() + else: # a terminal is attached and stderr isn't redirected, maybe debug. if config.config['debug_unhandled_exceptions']: + logger.info("Invoking the debugger...") import pdb - logger.info("Invoking the debugger...") pdb.pm() else: ORIGINAL_EXCEPTION_HOOK(exc_type, exc_value, exc_tb) |
