feat(shared): allow to disable log rotate/retention

This commit is contained in:
jo 2022-05-04 15:06:30 +02:00 committed by Kyle Robbertze
parent d098671f3b
commit 9130cf2895
1 changed files with 19 additions and 12 deletions

View File

@ -53,6 +53,7 @@ def setup_logger(
level: LogLevel, level: LogLevel,
filepath: Optional[Path] = None, filepath: Optional[Path] = None,
serialize: bool = False, serialize: bool = False,
rotate: bool = True,
) -> Tuple[LogLevel, Optional[Path]]: ) -> Tuple[LogLevel, Optional[Path]]:
""" """
Configure the logger and return the computed log level. Configure the logger and return the computed log level.
@ -62,23 +63,29 @@ def setup_logger(
:param verbosity: verbosity (between -1 and 3) of the logger :param verbosity: verbosity (between -1 and 3) of the logger
:param filepath: write logs to filepath :param filepath: write logs to filepath
:param serialize: generate JSON formatted log records :param serialize: generate JSON formatted log records
:param rotate: enable log rotation and retention
:returns: log level guessed from the verbosity :returns: log level guessed from the verbosity
""" """
handlers = [{"sink": sys.stderr, "level": level.no, "serialize": serialize}] handlers = [{"sink": sys.stderr, "level": level.no, "serialize": serialize}]
if filepath is not None: if filepath is not None:
handlers.append( file_handler = {
{ "sink": filepath,
"sink": filepath, "enqueue": True,
"enqueue": True, "level": level.no,
"level": level.no, "serialize": serialize,
"serialize": serialize, "encoding": "utf-8",
"rotation": "12:00", }
"retention": "7 days", if rotate:
"compression": "gz", file_handler.update(
"encoding": "utf-8", {
} "rotation": "12:00",
) "retention": "7 days",
"compression": "gz",
}
)
handlers.append(file_handler)
logger.configure(handlers=handlers) logger.configure(handlers=handlers)