diff --git a/common/src/aaredaqlib/logger_config.py b/common/src/aaredaqlib/logger_config.py index 353dcc0a..13d16796 100644 --- a/common/src/aaredaqlib/logger_config.py +++ b/common/src/aaredaqlib/logger_config.py @@ -1,5 +1,7 @@ import logging import logging.config +from pathlib import Path + import yaml import os @@ -20,12 +22,27 @@ class QtLogHandler(logging.Handler): except Exception: self.handleError(record) -def setup_logger(name="aareDAQ", base_dir: str | None = '/tmp/mxlogs'): + +def get_config_path(env: str = "dev") -> Path: + module_dir = Path(__file__).parent + config_filename = f"logging_{env}.yaml" + config_path = module_dir / config_filename + + if not config_path.exists(): + raise FileNotFoundError(f"Logging config not found: {config_path}") + + return config_path + + +def setup_logger(name="aareDAQ", base_dir: str | None = '/tmp/mxlogs', config_path: str | None = None): # switch to production mode using: $ APP_ENV=prod python main.py env = os.getenv("APP_ENV", "dev") # default: dev - config_file = ( - "/sls/MX/applications/aaredaq/common/src/aaredaqlib/logging_prod.yaml" if env == "prod" else "/sls/MX/applications/aaredaq/common/src/aaredaqlib/logging_dev.yaml" - ) + + if config_path is None: + config_file = get_config_path(env) + else: + config_file = Path(config_path) + with open(config_file, "r") as f: config = yaml.safe_load(f.read())