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
This commit is contained in:
Jonas L 2022-01-07 16:35:58 +01:00 committed by GitHub
parent 9bad45acb3
commit 501e7844e3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 8 additions and 12 deletions

View File

@ -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}...")

View File

@ -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(