From 8a5eea4dd536d0268209dc673190b9f4c49caeb2 Mon Sep 17 00:00:00 2001 From: Paul Kronenwetter Date: Sun, 19 Jun 2022 08:33:37 -0400 Subject: [PATCH] Make log_handler a little more flexible. (#215) --- tnc/log_handler.py | 71 ++++++++++++++++++++++++---------------------- 1 file changed, 37 insertions(+), 34 deletions(-) diff --git a/tnc/log_handler.py b/tnc/log_handler.py index 514c2086..216f1c1a 100644 --- a/tnc/log_handler.py +++ b/tnc/log_handler.py @@ -22,44 +22,47 @@ def setup_logging(filename: str = "", level: str = "DEBUG"): timestamper, ] - logging.config.dictConfig( - { - "version": 1, - "disable_existing_loggers": False, - "formatters": { - "plain": { - "()": structlog.stdlib.ProcessorFormatter, - "processor": structlog.dev.ConsoleRenderer(colors=False), - "foreign_pre_chain": pre_chain, - }, - "colored": { - "()": structlog.stdlib.ProcessorFormatter, - "processor": structlog.dev.ConsoleRenderer(colors=True), - "foreign_pre_chain": pre_chain, - }, + config_dict = { + "version": 1, + "disable_existing_loggers": False, + "formatters": { + "plain": { + "()": structlog.stdlib.ProcessorFormatter, + "processor": structlog.dev.ConsoleRenderer(colors=False), + "foreign_pre_chain": pre_chain, }, - "handlers": { - "default": { - "level": level, - "class": "logging.StreamHandler", - "formatter": "colored", - }, - "file": { - "level": level, - "class": "logging.handlers.WatchedFileHandler", - "filename": f"{filename}.log", - "formatter": "plain", - }, + "colored": { + "()": structlog.stdlib.ProcessorFormatter, + "processor": structlog.dev.ConsoleRenderer(colors=True), + "foreign_pre_chain": pre_chain, }, - "loggers": { - "": { - "handlers": ["default", "file"] if filename else ["default"], - "level": level, - "propagate": True, - }, + }, + "handlers": { + "default": { + "level": level, + "class": "logging.StreamHandler", + "formatter": "colored", }, + }, + "loggers": { + "": { + "handlers": ["default"], + "level": level, + "propagate": True, + }, + }, + } + + if filename: + config_dict["handlers"]["file"] = { + "level": level, + "class": "logging.handlers.WatchedFileHandler", + "filename": f"{filename}.log", + "formatter": "plain", } - ) + config_dict["loggers"][""]["handlers"].append("file") + + logging.config.dictConfig(config_dict) structlog.configure( processors=[ structlog.stdlib.add_log_level,