aboutsummaryrefslogtreecommitdiff
path: root/IRCLogging.py
diff options
context:
space:
mode:
authorGravatar jesopo2018-08-28 12:23:57 +0100
committerGravatar jesopo2018-08-28 12:23:57 +0100
commite5a5fa5c4b40918247be8486d27a1676b6d2b044 (patch)
tree70e61a968a20134b01ea4e4f5611e4e254df06ae /IRCLogging.py
parentPrevent users sending coins to themselves (diff)
signature
modules/logging.py -> IRCLogging.py; IRCLog.py -> IRCBuffer.py; change logging
to be an object on the server object instead of an event call
Diffstat (limited to 'IRCLogging.py')
-rw-r--r--IRCLogging.py47
1 files changed, 47 insertions, 0 deletions
diff --git a/IRCLogging.py b/IRCLogging.py
new file mode 100644
index 00000000..7b01acee
--- /dev/null
+++ b/IRCLogging.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):
+ self._log(message, params, logging.DEBUG)
+ def info(self, message, params):
+ self._log(message, params, logging.INFO)
+ def warn(self, message, params):
+ self._log(message, params, logging.WARN)
+ def error(self, message, params):
+ self._log(message, params, logging.ERROR)
+ def critical(self, message, params):
+ self._log(message, params, logging.CRITICAL)
+ def _log(self, message, params, level):
+ self.logger.log(level, message, *params)