add basic colouring

This commit is contained in:
Pim Nelissen
2026-03-03 21:42:19 +01:00
parent 7e2d6076fd
commit b882f20358
2 changed files with 22 additions and 1 deletions

View File

@ -3,10 +3,13 @@ disable_existing_loggers: false
formatters:
simple:
format: '%(asctime)s - %(levelname)s: %(message)s'
colored:
'()': pg_rad.logger.logger.ColorFormatter
format: '%(asctime)s - %(levelname)s: %(message)s'
handlers:
stdout:
class: logging.StreamHandler
formatter: simple
formatter: colored
stream: ext://sys.stdout
loggers:
root:

View File

@ -20,3 +20,21 @@ def setup_logger(log_level: str = "WARNING"):
config["loggers"]["root"]["level"] = log_level
logging.config.dictConfig(config)
class ColorFormatter(logging.Formatter):
# ANSI escape codes
COLORS = {
logging.DEBUG: "\033[36m", # Cyan
logging.INFO: "\033[32m", # Green
logging.WARNING: "\033[33m", # Yellow
logging.ERROR: "\033[31m", # Red
logging.CRITICAL: "\033[41m", # Red background
}
RESET = "\033[0m"
def format(self, record):
color = self.COLORS.get(record.levelno, self.RESET)
record.levelname = f"{color}{record.levelname}{self.RESET}"
record.msg = f"{record.msg}"
return super().format(record)