From 7fea5c07a129a2c79ad78cbd524e549b574fea04 Mon Sep 17 00:00:00 2001 From: s-ducks Date: Thu, 18 Aug 2022 13:51:22 +0100 Subject: [PATCH] double logging is for chumps --- dataengineeringutils3/logging.py | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/dataengineeringutils3/logging.py b/dataengineeringutils3/logging.py index 4130b1e..b16cacd 100644 --- a/dataengineeringutils3/logging.py +++ b/dataengineeringutils3/logging.py @@ -17,17 +17,23 @@ def get_logger( log = logging.getLogger("root") log.setLevel(logging.DEBUG) - log_stringio = io.StringIO() - handler = logging.StreamHandler(log_stringio) + if not log.hasHandlers(): + # set the io handler + log_stringio = io.StringIO() + io_handler = logging.StreamHandler(log_stringio) + # set the console output + console_handler = logging.StreamHandler() + console_handler.setLevel(logging.INFO) + # add the handlers + log.addHandler(io_handler) + log.addHandler(console_handler) + else: + log_stringio = log.handlers[0].stream log_formatter = logging.Formatter(fmt=fmt, datefmt=datefmt) - handler.setFormatter(log_formatter) - log.addHandler(handler) - - # Add console output - console = logging.StreamHandler() - console.setLevel(logging.INFO) - console.setFormatter(log_formatter) - log.addHandler(console) + + # add the formatters + for log_handler in log.handlers: + log_handler.setFormatter(log_formatter) return log, log_stringio