From b48905b4e4f3a9dfe35c66f0009110d43fa95565 Mon Sep 17 00:00:00 2001 From: Brian Martin Date: Wed, 19 Jun 2019 07:29:12 -0400 Subject: [PATCH] catch bot errors in log Close #10 - New boterror log - Works for MQTT and XMPP --- bumper/__init__.py | 9 +++++++++ bumper/confserver.py | 2 +- bumper/mqttserver.py | 7 +++++++ bumper/xmppserver.py | 10 ++++++++++ 4 files changed, 27 insertions(+), 1 deletion(-) diff --git a/bumper/__init__.py b/bumper/__init__.py index efa22b0..8ee6006 100644 --- a/bumper/__init__.py +++ b/bumper/__init__.py @@ -100,6 +100,15 @@ helperbotlog.addHandler(helperbot_rotate) # Override the logging level # helperbotlog.setLevel(logging.INFO) +boterrorlog = logging.getLogger("boterror") +boterrorlog_rotate = RotatingFileHandler( + "logs/boterror.log", maxBytes=5000000, backupCount=5 +) +boterrorlog_rotate.setFormatter(logformat) +boterrorlog.addHandler(boterrorlog_rotate) +# Override the logging level +# boterrorlog.setLevel(logging.INFO) + xmppserverlog = logging.getLogger("xmppserver") xmpp_rotate = RotatingFileHandler( "logs/xmppserver.log", maxBytes=5000000, backupCount=5 diff --git a/bumper/confserver.py b/bumper/confserver.py index 1c3bb3b..c211ba4 100644 --- a/bumper/confserver.py +++ b/bumper/confserver.py @@ -1093,7 +1093,7 @@ class ConfServer: if did != "": bot = bumper.bot_get(did) - if bot["company"] == "eco-ng" and bot["mqtt_connection"] == True: + if bot["company"] == "eco-ng": body = "" retcmd = await self.helperbot.send_command(json_body, randomid) confserverlog.debug("Send Bot - {}".format(json_body)) diff --git a/bumper/mqttserver.py b/bumper/mqttserver.py index 5e247a4..843397e 100644 --- a/bumper/mqttserver.py +++ b/bumper/mqttserver.py @@ -15,6 +15,7 @@ from datetime import datetime, timedelta import bumper helperbotlog = logging.getLogger("helperbot") +boterrorlog = logging.getLogger("boterror") mqttserverlog = logging.getLogger("mqttserver") logging.getLogger("transitions").setLevel(logging.CRITICAL + 1) # Ignore this logger @@ -107,6 +108,12 @@ class MQTTHelperBot: message.topic, str(message.data.decode("utf-8")) ) ) + if str(message.topic).split("/")[2] == "errors": + boterrorlog.error( + "Received Error - Topic: {} - Message: {}".format( + message.topic, str(message.data.decode("utf-8")) + ) + ) else: helperbotlog.debug( "Received Message - Topic: {} - Message: {}".format( diff --git a/bumper/xmppserver.py b/bumper/xmppserver.py index ef43a58..81d5a6a 100644 --- a/bumper/xmppserver.py +++ b/bumper/xmppserver.py @@ -10,6 +10,7 @@ import bumper import asyncio xmppserverlog = logging.getLogger("xmppserver") +boterrorlog = logging.getLogger("boterror") class XMPPServer: @@ -721,6 +722,15 @@ class XMPPAsyncClient: ).replace("ns0:", ""), ) ) + if 'td="error"' in newdata or 'errs=' in newdata: + boterrorlog.error( + "Received Error from ({}:{} | {}) - {}".format( + self.address[0], + self.address[1], + self.bumper_jid, + newdata, + ) + ) self._handle_iq(item, newdata) item.clear()