From 9a44fcc440bacb1f0d8c71b2d20ecc10dacdf536 Mon Sep 17 00:00:00 2001
From: Robert Goldmann <deadlocker@gmx.de>
Date: Sat, 2 May 2020 11:46:11 +0200
Subject: [PATCH] DefaultLogger: added method for skipping logger
 initialization if logger is already configured

---
 PythonLibs/DefaultLogger.py | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/PythonLibs/DefaultLogger.py b/PythonLibs/DefaultLogger.py
index 3681b52..c83cdbb 100644
--- a/PythonLibs/DefaultLogger.py
+++ b/PythonLibs/DefaultLogger.py
@@ -6,6 +6,19 @@ class DefaultLogger:
     DEFAULT_LOG_FORMAT = '[%(levelname)-7s] - %(asctime)s - %(module)s.%(funcName)s:%(lineno)d: %(message)s'
     DEFAULT_DATE_FORMAT = '%Y-%m-%d %H:%M:%S'
 
+    @classmethod
+    def create_logger_if_not_exists(cls, appName: str,
+                                    logLevel=logging.DEBUG,
+                                    logFormat=None,
+                                    dateFormat=None) -> logging.Logger:
+
+        logger = logging.getLogger(appName)
+        if logging.getLogger(appName).hasHandlers():
+            logger.debug(f'Skipping initialization of logger "{appName}" as it is already configured.')
+            return
+
+        return cls.configure_logger(logger, logLevel, logFormat, dateFormat)
+
     @classmethod
     def create_logger(cls, appName: str, logLevel=logging.DEBUG, logFormat=None, dateFormat=None) -> logging.Logger:
         logger = logging.getLogger(appName)
-- 
GitLab