From 1ad025c043ec46eacf9cfa7dbd0e9d6bcdd9739d Mon Sep 17 00:00:00 2001 From: Brendan Howell Date: Sat, 14 Oct 2017 18:25:44 +0200 Subject: [PATCH] logging for bureau exception traces --- screenless/bureau/bureau.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/screenless/bureau/bureau.py b/screenless/bureau/bureau.py index 20e85b8..9ab10b2 100644 --- a/screenless/bureau/bureau.py +++ b/screenless/bureau/bureau.py @@ -5,6 +5,7 @@ import json import logging import os.path import subprocess +import sys import tempfile import textwrap import threading @@ -115,6 +116,7 @@ class Bureau(object): log_format = logging.Formatter('LOG ${levelname} $name: $message', style='$') log_printer.setFormatter(log_format) self.log.addHandler(log_printer) + sys.excepthook = self._log_exception # setup a dir to store files and data self.datadir = os.path.join(basepath, self.prefix) @@ -133,6 +135,10 @@ class Bureau(object): self.log.debug("commands: ") self.log.debug(str(self.commands)) + def _log_exception(typ, value, tb): + self.log.error("CRASH TRACE: {0}".format(str(value)), exc_info=(typ, value, tb)) + sys.__excepthook__(typ, value, tb) + def load_config(self): """ load (or reload) config data from file