diff --git a/src/run_modules/run_environment.py b/src/run_modules/run_environment.py index f66660dcfde61a56b6f1cd41910be480b1faf60a..04c984b1a00de4d7cec93adab10120370e76002e 100644 --- a/src/run_modules/run_environment.py +++ b/src/run_modules/run_environment.py @@ -39,11 +39,7 @@ class RunEnvironment(object): logging.info(f"{self.__class__.__name__} finished after {self.time}") self.del_by_exit = True if self.__class__.__name__ == "RunEnvironment": - try: - new_file = os.path.join(self.data_store.get("experiment_path"), "logging.log") - shutil.copyfile(self.logger.log_file, new_file) - except (NameNotFoundInDataStore, FileNotFoundError): - pass + self.__copy_log_file() self.data_store.clear_data_store() def __enter__(self): @@ -54,6 +50,20 @@ class RunEnvironment(object): logging.error(exc_val, exc_info=(exc_type, exc_val, exc_tb)) self.__del__() + def __copy_log_file(self): + try: + counter = 0 + filename_pattern = os.path.join(self.data_store.get("experiment_path"), "logging_%03i.log") + new_file = filename_pattern % counter + while os.path.exists(new_file): + counter += 1 + new_file = filename_pattern % counter + logging.info(f"Copy log file to {new_file}") + shutil.copyfile(self.logger.log_file, new_file) + except (NameNotFoundInDataStore, FileNotFoundError): + pass + + @staticmethod def do_stuff(length=2): time.sleep(length)