aboutsummaryrefslogtreecommitdiff
path: root/modules/logging.py
diff options
context:
space:
mode:
authorGravatar jesopo2018-08-05 11:30:43 +0100
committerGravatar jesopo2018-08-05 11:30:43 +0100
commit5e42608ead5021858aada91426300e908148139b (patch)
treec4625d5578ffa6956b1894b1f37ad40a6c41f165 /modules/logging.py
parentRemove debug print, improve wikipedia.py (diff)
Improved logging, added TRACE logging in Database.py to see how it performs
Diffstat (limited to 'modules/logging.py')
-rw-r--r--modules/logging.py38
1 files changed, 38 insertions, 0 deletions
diff --git a/modules/logging.py b/modules/logging.py
new file mode 100644
index 00000000..7944ec41
--- /dev/null
+++ b/modules/logging.py
@@ -0,0 +1,38 @@
+import logging, sys
+
+class Module(object):
+ def __init__(self, bot):
+ self.logger = logging.getLogger(__name__)
+ self.logger.setLevel(logging.DEBUG)
+
+ formatter = logging.Formatter(
+ "%(asctime)s - %(levelname)s - %(message)s",
+ "%Y-%m-%dT%H:%M:%S%z")
+
+ stdout_handler = logging.StreamHandler(sys.stdout)
+ stdout_handler.setLevel(logging.INFO)
+ stdout_handler.setFormatter(formatter)
+ self.logger.addHandler(stdout_handler)
+
+ file_handler = logging.FileHandler('bot.log')
+ file_handler.setLevel(logging.DEBUG)
+ file_handler.setFormatter(formatter)
+ self.logger.addHandler(file_handler)
+
+ bot.events.on("log.debug").hook(self.debug)
+ bot.events.on("log.info").hook(self.info)
+ bot.events.on("log.warn").hook(self.warn)
+ bot.events.on("log.error").hook(self.error)
+
+ def debug(self, event):
+ self._log(event, logging.DEBUG)
+ def info(self, event):
+ self._log(event, logging.INFO)
+ def warn(self, event):
+ self._log(event, logging.WARN)
+ def error(self, event):
+ self._log(event, logging.ERROR)
+ def _log(self, event, level):
+ message = event["message"]
+ params = event.get("params", [])
+ self.logger.log(level, message, *params)