From 8f39791f94f67a873b73993a0c1fd209213b122f Mon Sep 17 00:00:00 2001
From: Romain Broucquart <romain.broucquart@synchrotron-soleil.fr>
Date: Fri, 22 Apr 2022 18:24:23 +0200
Subject: [PATCH] Change the default logger creation

* It is now possible to pass a str with a log level
* If no logger is passed, we getLogger(__name__)
* A stream handler is added on the newly created logger, only if it doesnt have one already.
---
 core/ArchiveExtractor.py | 21 +++++++++++++++++----
 1 file changed, 17 insertions(+), 4 deletions(-)

diff --git a/core/ArchiveExtractor.py b/core/ArchiveExtractor.py
index f049844..8ba4086 100755
--- a/core/ArchiveExtractor.py
+++ b/core/ArchiveExtractor.py
@@ -30,7 +30,7 @@ class ArchiveExtractor:
             self,
             extractorKind='H', extractorNumber=2,
             extractorPath=None,
-            logger=logging.getLogger("ArchiveExtractor")
+            logger='info',
             ):
         """
         Constructor function
@@ -47,16 +47,29 @@ class ArchiveExtractor:
             Tango path to the extractor.
             If this argument is given, it takes precedence over extractorKind and extractorNumber.
 
-        logger: logging.Logger
-            Logger object to use
+        logger: logging.Logger, str
+            Logger object to use.
+            If string, can be a log level. A basic logger with stream handler will be instanciated.
+            Default to 'info'.
 
         Return
         ------
         ArchiveExtractor
         """
 
+        #######################################################
         # Get logger
-        self.logger = logger
+        if type(logger) == logging.Logger:
+            self.logger = logger
+        else:
+            self.logger = logging.getLogger(__name__)
+            self.logger.setLevel(getattr(logging, logger.upper()))
+            if not self.logger.hasHandlers():
+                # No handlers, create one
+                sh = logging.StreamHandler()
+                sh.setLevel(self.logger.level)
+                sh.setFormatter(logging.Formatter("%(levelname)s:%(message)s"))
+                self.logger.addHandler(sh)
 
         #######################################################
         # Select Extractor
-- 
GitLab