From 9130cf289559fd417683841c8687f5e78ea8d781 Mon Sep 17 00:00:00 2001 From: jo Date: Wed, 4 May 2022 15:06:30 +0200 Subject: [PATCH] feat(shared): allow to disable log rotate/retention --- shared/libretime_shared/logging.py | 31 ++++++++++++++++++------------ 1 file changed, 19 insertions(+), 12 deletions(-) diff --git a/shared/libretime_shared/logging.py b/shared/libretime_shared/logging.py index 0aae57770..863d06dcf 100644 --- a/shared/libretime_shared/logging.py +++ b/shared/libretime_shared/logging.py @@ -53,6 +53,7 @@ def setup_logger( level: LogLevel, filepath: Optional[Path] = None, serialize: bool = False, + rotate: bool = True, ) -> Tuple[LogLevel, Optional[Path]]: """ 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 filepath: write logs to filepath :param serialize: generate JSON formatted log records + :param rotate: enable log rotation and retention :returns: log level guessed from the verbosity """ handlers = [{"sink": sys.stderr, "level": level.no, "serialize": serialize}] if filepath is not None: - handlers.append( - { - "sink": filepath, - "enqueue": True, - "level": level.no, - "serialize": serialize, - "rotation": "12:00", - "retention": "7 days", - "compression": "gz", - "encoding": "utf-8", - } - ) + file_handler = { + "sink": filepath, + "enqueue": True, + "level": level.no, + "serialize": serialize, + "encoding": "utf-8", + } + if rotate: + file_handler.update( + { + "rotation": "12:00", + "retention": "7 days", + "compression": "gz", + } + ) + + handlers.append(file_handler) logger.configure(handlers=handlers)