diff options
-rw-r--r-- | pysite/__init__.py | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/pysite/__init__.py b/pysite/__init__.py index 82abf499..5a48c94d 100644 --- a/pysite/__init__.py +++ b/pysite/__init__.py @@ -2,7 +2,7 @@ import logging import os import sys -from logging import StreamHandler +from logging import Logger, StreamHandler from logging.handlers import SysLogHandler from logmatic import JsonFormatter @@ -13,6 +13,25 @@ from pysite.logs import NonPicklingSocketHandler # region Logging # Get the log level from environment +logging.TRACE = 5 +logging.addLevelName(logging.TRACE, "TRACE") + + +def monkeypatch_trace(self, msg, *args, **kwargs): + """ + Log 'msg % args' with severity 'TRACE'. + + To pass exception information, use the keyword argument exc_info with + a true value, e.g. + + logger.trace("Houston, we have an %s", "interesting problem", exc_info=1) + """ + if self.isEnabledFor(logging.TRACE): + self._log(logging.TRACE, msg, args, **kwargs) + + +Logger.trace = monkeypatch_trace + log_level = os.environ.get("LOG_LEVEL", "debug").upper() if hasattr(logging, log_level): |