aboutsummaryrefslogtreecommitdiff
path: root/Logging.py
diff options
context:
space:
mode:
authorGravatar jesopo2018-09-02 19:52:18 +0100
committerGravatar jesopo2018-09-02 19:52:18 +0100
commit3ecd938de2ea83faae32b37989152bccd7fbe6a8 (patch)
treeafdc36dff59402a7b884721194b98e4b8c631ea8 /Logging.py
parentAdd virustotal-api-key to bot.conf.example (diff)
signature
IRCLogging -> Logging
Diffstat (limited to 'Logging.py')
-rw-r--r--Logging.py47
1 files changed, 47 insertions, 0 deletions
diff --git a/Logging.py b/Logging.py
new file mode 100644
index 00000000..c2fbde1c
--- /dev/null
+++ b/Logging.py
@@ -0,0 +1,47 @@
+import logging, logging.handlers, sys, time
+
+class BitBotFormatter(logging.Formatter):
+ def formatTime(self, record, datefmt=None):
+ ct = self.converter(record.created)
+ if datefmt:
+ if "%f" in datefmt:
+ msec = "%03d" % record.msecs
+ datefmt = datefmt.replace("%f", msec)
+ s = time.strftime(datefmt, ct)
+ else:
+ t = time.strftime("%Y-%m-%d %H:%M:%S", ct)
+ s = "%s.%03d" % (t, record.msecs)
+ return s
+
+class Log(object):
+ def __init__(self, bot):
+ self.logger = logging.getLogger(__name__)
+ self.logger.setLevel(logging.DEBUG)
+
+ formatter = BitBotFormatter(
+ "%(asctime)s - %(levelname)s - %(message)s",
+ "%Y-%m-%dT%H:%M:%S.%f%z")
+
+ stdout_handler = logging.StreamHandler(sys.stdout)
+ stdout_handler.setLevel(logging.INFO)
+ stdout_handler.setFormatter(formatter)
+ self.logger.addHandler(stdout_handler)
+
+ file_handler = logging.handlers.TimedRotatingFileHandler(
+ "bot.log", when="midnight", backupCount=5)
+ file_handler.setLevel(logging.DEBUG)
+ file_handler.setFormatter(formatter)
+ self.logger.addHandler(file_handler)
+
+ def debug(self, message, params, **kwargs):
+ self._log(message, params, logging.DEBUG, kwargs)
+ def info(self, message, params, **kwargs):
+ self._log(message, params, logging.INFO, kwargs)
+ def warn(self, message, params, **kwargs):
+ self._log(message, params, logging.WARN, kwargs)
+ def error(self, message, params, **kwargs):
+ self._log(message, params, logging.ERROR, kwargs)
+ def critical(self, message, params, **kwargs):
+ self._log(message, params, logging.CRITICAL, kwargs)
+ def _log(self, message, params, level, kwargs):
+ self.logger.log(level, message, *params, **kwargs)