diff -r 87c908079bc6 -r 60edd0c901f1 Beremiz_service.py --- a/Beremiz_service.py Wed Jan 24 14:48:49 2018 +0100 +++ b/Beremiz_service.py Wed Jan 24 15:44:36 2018 +0100 @@ -538,12 +538,18 @@ # Exception hooks s + +def LogMessageAndException(msg, exp=None): + if exp is None: + exp = sys.exc_info() + if pyroserver.plcobj is not None: + pyroserver.plcobj.LogMessage(0, msg + '\n'.join(traceback.format_exception(*exp))) + else: + print(msg) + traceback.print_exception(*exp) + def LogException(*exp): - if pyroserver.plcobj is not None: - pyroserver.plcobj.LogMessage(0, '\n'.join(traceback.format_exception(*exp))) - else: - traceback.print_exception(*exp) - + LogExceptionAndMessage("",exp) sys.excepthook = LogException @@ -600,8 +606,8 @@ website = NS.RegisterWebsite(webport) pyruntimevars["website"] = website statuschange.append(NS.website_statuslistener_factory(website)) - except Exception, e: - print(_("Nevow Web service failed. "), e) + except Exception: + LogMessageAndException(_("Nevow Web service failed. ")) if wampconf is not None: try: @@ -612,11 +618,11 @@ pyruntimevars["wampsession"] = WC.GetSession WC.SetServer(pyroserver) else: - print(_("WAMP config is incomplete.")) + raise Exception(_("WAMP config is incomplete.")) else: - print(_("WAMP config is missing.")) - except Exception, e: - print(_("WAMP client startup failed. "), e) + raise Exception(_("WAMP config is missing.")) + except Exception: + LogMessageAndException(_("WAMP client startup failed. ")) if havetwisted or havewx: @@ -630,7 +636,7 @@ else: try: pyroserver.Loop() - except KeyboardInterrupt, e: + except KeyboardInterrupt: pass pyroserver.Quit() sys.exit(0)