From 501e7844e369488990949f693a002d275f292923 Mon Sep 17 00:00:00 2001 From: Jonas L Date: Fri, 7 Jan 2022 16:35:58 +0100 Subject: [PATCH] feat(shared): let user provide the log level (#1493) * feat(shared): let user provide the log level Simplify the logger setup, as choice should be left to the user to import or guess the log level from verbosity. * fix: linting --- shared/libretime_shared/app.py | 8 +++++--- shared/libretime_shared/logging.py | 12 +++--------- 2 files changed, 8 insertions(+), 12 deletions(-) diff --git a/shared/libretime_shared/app.py b/shared/libretime_shared/app.py index 0e652d2c3..d3fe20b10 100644 --- a/shared/libretime_shared/app.py +++ b/shared/libretime_shared/app.py @@ -5,7 +5,7 @@ from typing import Optional from loguru import logger -from .logging import LogLevel, setup_logger +from .logging import LogLevel, level_from_verbosity, setup_logger # pylint: disable=too-few-public-methods @@ -16,6 +16,7 @@ class AbstractApp(ABC): """ log_level: LogLevel + log_filepath: Optional[Path] = None @property @abstractmethod @@ -29,8 +30,9 @@ class AbstractApp(ABC): log_filepath: Optional[PathLike] = None, ): if log_filepath is not None: - log_filepath = Path(log_filepath) + self.log_filepath = Path(log_filepath) - self.log_level = setup_logger(verbosity=verbosity, filepath=log_filepath) + self.log_level = level_from_verbosity(verbosity) + setup_logger(level=self.log_level, filepath=self.log_filepath) logger.info(f"Starting {self.name}...") diff --git a/shared/libretime_shared/logging.py b/shared/libretime_shared/logging.py index 634a8ae03..c68403932 100644 --- a/shared/libretime_shared/logging.py +++ b/shared/libretime_shared/logging.py @@ -46,10 +46,10 @@ def level_from_verbosity(verbosity: int) -> LogLevel: def setup_logger( - verbosity: int, + level: LogLevel, filepath: Optional[Path] = None, serialize: bool = False, -) -> LogLevel: +) -> None: """ Configure the logger and return the computed log level. @@ -60,8 +60,6 @@ def setup_logger( :param serialize: generate JSON formatted log records :returns: log level guessed from the verbosity """ - level = level_from_verbosity(verbosity) - handlers = [dict(sink=sys.stderr, level=level.no, serialize=serialize)] if filepath is not None: @@ -78,14 +76,12 @@ def setup_logger( logger.configure(handlers=handlers) - return level - _empty_logger = deepcopy(logger) def create_task_logger( - verbosity: int, + level: LogLevel, filepath: Path, serialize: bool = False, ) -> "Logger": @@ -99,8 +95,6 @@ def create_task_logger( """ task_logger = deepcopy(_empty_logger) - level = level_from_verbosity(verbosity) - task_logger.configure( handlers=[ dict(