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:
parent
9bad45acb3
commit
501e7844e3
|
@ -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}...")
|
||||
|
|
|
@ -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(
|
||||
|
|
Loading…
Reference in New Issue