diff --git a/omnibot/__main__.py b/omnibot/__main__.py index 425dda0..24401f4 100644 --- a/omnibot/__main__.py +++ b/omnibot/__main__.py @@ -8,6 +8,20 @@ import sys from .config import ServerConfig from .bot import Bot +# ADD TRACE +# add TRACE logging level to logging module +TRACE = 5 +logging.addLevelName(TRACE, "TRACE") +logging.TRACE = TRACE + +def trace(self, message, *args, **kwargs): + if self.isEnabledFor(TRACE): + #args = list(map(str, args)) + self._log(TRACE, message, args, **kwargs) + +logging.Logger.trace = trace +# END ADD TRACE + parser = argparse.ArgumentParser(description="Run an IRC bot") parser.add_argument("-c", "--config", type=str, default=None) parser.add_argument( diff --git a/omnibot/config.py b/omnibot/config.py index 38619b9..7a2f991 100644 --- a/omnibot/config.py +++ b/omnibot/config.py @@ -82,7 +82,7 @@ class ServerConfig: if "loglevel" in obj: if not isinstance(obj["loglevel"], str): raise ConfigError("loglevel", "must be a string") - loglevels = ["DEBUG", "INFO", "WARNING", "ERROR", "CRITICAL"] + loglevels = ["TRACE", "DEBUG", "INFO", "WARNING", "ERROR", "CRITICAL"] if obj["loglevel"] not in loglevels: raise ConfigError("loglevel", "must be one of: " + " ".join(loglevels)) self.loglevel = obj["loglevel"]