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