diff --git a/src/helpers.py b/src/helpers.py index 12ec837bfcc14753fb7a90ac34f4499f47cb485d..6e9d47d1040aa803358cb60439197fd48641e9e1 100644 --- a/src/helpers.py +++ b/src/helpers.py @@ -234,11 +234,11 @@ class Logger: self.formatter = '%(asctime)s - %(levelname)s: %(message)s [%(filename)s:%(funcName)s:%(lineno)s]' # set log path - log_file = self.setup_logging_path(log_path) + self.log_file = self.setup_logging_path(log_path) # set root logger as file handler logging.basicConfig(level=level_file, format=self.formatter, - filename=log_file, + filename=self.log_file, filemode='a') # add stream handler to the root logger logging.getLogger('').addHandler(self.logger_console(level_stream)) diff --git a/src/run_modules/run_environment.py b/src/run_modules/run_environment.py index 56c017290eea4d11881b9b131378d8c5995f0b29..1c44786dfd4830c8053ae1673eac1473fbd19338 100644 --- a/src/run_modules/run_environment.py +++ b/src/run_modules/run_environment.py @@ -2,9 +2,13 @@ __author__ = "Lukas Leufen" __date__ = '2019-11-25' import logging +import os +import shutil import time +from src.helpers import Logger from src.datastore import DataStoreByScope as DataStoreObject +from src.datastore import NameNotFoundInDataStore from src.helpers import TimeTracking @@ -16,6 +20,7 @@ class RunEnvironment(object): del_by_exit = False data_store = DataStoreObject() + logger = Logger() def __init__(self): """ @@ -34,6 +39,11 @@ 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", "general"), "logging.log") + shutil.copyfile(self.logger.log_file, new_file) + except (NameNotFoundInDataStore, FileNotFoundError): + pass self.data_store.clear_data_store() def __enter__(self): diff --git a/test/test_modules/test_pre_processing.py b/test/test_modules/test_pre_processing.py index 3637410126362471120df9e5be334190634a3bca..425ddecc135db75a3f2f624ed150e8dd8f566bdc 100644 --- a/test/test_modules/test_pre_processing.py +++ b/test/test_modules/test_pre_processing.py @@ -36,6 +36,7 @@ class TestPreProcessing: def test_init(self, caplog): ExperimentSetup(parser_args={}, stations=['DEBW107', 'DEBY081', 'DEBW013', 'DEBW076', 'DEBW087'], statistics_per_var={'o3': 'dma8eu', 'temp': 'maximum'}) + caplog.clear() caplog.set_level(logging.INFO) with PreProcessing(): assert caplog.record_tuples[0] == ('root', 20, 'PreProcessing started')