From b62300f15b31bdc4626027d6f70e8d661167bc13 Mon Sep 17 00:00:00 2001 From: Chavithra Date: Sun, 12 Jun 2022 11:58:31 +0200 Subject: [PATCH] Update logs rotation (#1920) * Logs : add rollover at start * Black * Typing Co-authored-by: Theodore Aptekarev --- .../log/generation/path_tracking_file_handler.py | 12 +++++++----- terminal.py | 13 +++++++++++++ 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/openbb_terminal/core/log/generation/path_tracking_file_handler.py b/openbb_terminal/core/log/generation/path_tracking_file_handler.py index 3a2a5adf88b..4b238abfa0c 100644 --- a/openbb_terminal/core/log/generation/path_tracking_file_handler.py +++ b/openbb_terminal/core/log/generation/path_tracking_file_handler.py @@ -165,12 +165,14 @@ class PathTrackingFileHandler(TimedRotatingFileHandler): def doRollover(self) -> None: log_sender = self.__log_sender - super().doRollover() + if self.lock: + with self.lock: + super().doRollover() - if log_sender.check_sending_conditions(): - to_delete_path_list = self.getFilesToDelete() - for path in to_delete_path_list: - log_sender.send_path(path=Path(path)) + if log_sender.check_sending_conditions(): + to_delete_path_list = self.getFilesToDelete() + for path in to_delete_path_list: + log_sender.send_path(path=Path(path)) # OVERRIDE def close(self): diff --git a/terminal.py b/terminal.py index babc214e79c..a63522cf8e5 100644 --- a/terminal.py +++ b/terminal.py @@ -18,6 +18,9 @@ from prompt_toolkit.styles import Style from prompt_toolkit.formatted_text import HTML from openbb_terminal.core.config.constants import REPO_DIR, ENV_FILE, USER_HOME +from openbb_terminal.core.log.generation.path_tracking_file_handler import ( + PathTrackingFileHandler, +) from openbb_terminal import feature_flags as obbff from openbb_terminal.helper_funcs import ( get_flair, @@ -549,6 +552,14 @@ def insert_start_slash(cmds: List[str]) -> List[str]: return cmds +def do_rollover(): + """RollOver the log file.""" + + for handler in logging.getLogger().handlers: + if isinstance(handler, PathTrackingFileHandler): + handler.doRollover() + + def log_settings() -> None: """Log settings""" settings_dict = {} @@ -573,6 +584,8 @@ def log_settings() -> None: logger.info("SETTINGS: %s ", str(settings_dict)) + do_rollover() + def run_scripts( path: str,