From 7e03fd2d9d3b8575c81ede0a885e41c74e8742be Mon Sep 17 00:00:00 2001 From: Enrico Faulhaber Date: Sun, 9 Jul 2017 22:20:45 +0200 Subject: [PATCH] (over-)improve error loging during startup Change-Id: I62a9f46dd427d514a2ea1401b92e5f69d197151d --- secop/devices/core.py | 2 ++ secop/server.py | 8 ++++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/secop/devices/core.py b/secop/devices/core.py index 4420243..5c61164 100644 --- a/secop/devices/core.py +++ b/secop/devices/core.py @@ -31,6 +31,7 @@ import types import inspect import threading +from secop.lib import formatExtendedStack from secop.lib.parsing import format_time from secop.errors import ConfigError, ProgrammingError from secop.protocol import status @@ -325,6 +326,7 @@ class Device(object): try: v = datatype.validate(v) except (ValueError, TypeError) as e: + self.log.exception(formatExtendedStack()) raise ConfigError('Device %s: config parameter %r:\n%r' % (self.name, k, e)) setattr(self, k, v) diff --git a/secop/server.py b/secop/server.py index 08ffbed..7735adc 100644 --- a/secop/server.py +++ b/secop/server.py @@ -30,7 +30,7 @@ import ConfigParser from daemon import DaemonContext from daemon.pidfile import TimeoutPIDLockFile -from secop.lib import get_class +from secop.lib import get_class, formatExtendedStack from secop.protocol.dispatcher import Dispatcher from secop.protocol.interface import INTERFACES #from secop.protocol.encoding import ENCODERS @@ -68,7 +68,11 @@ class Server(object): self.run() def run(self): - self._processCfg() + try: + self._processCfg() + except Exception as exc: + print formatExtendedStack(exc) + raise self.log.info('startup done, handling transport messages') self._threads = set()