import json import logging.config import os def log_dir(): fnm = os.path.join(os.path.dirname(__file__), '../log/') if not os.path.exists(fnm): fnm = os.path.join(os.path.dirname(__file__), '../../log/') assert os.path.exists(fnm), f"Can't locate log dir: {fnm}" return fnm def setup_logging(default_path="conf/logging.json", default_level=logging.INFO, env_key="LOG_CFG"): path = default_path value = os.getenv(env_key, None) if value: path = value if os.path.exists(path): with open(path, "r") as f: config = json.load(f) fnm = log_dir() config["handlers"]["info_file_handler"]["filename"] = fnm + "info.log" config["handlers"]["error_file_handler"]["filename"] = fnm + "error.log" logging.config.dictConfig(config) else: logging.basicConfig(level=default_level) __fnm = os.path.join(os.path.dirname(__file__), 'conf/logging.json') if not os.path.exists(__fnm): __fnm = os.path.join(os.path.dirname(__file__), '../../conf/logging.json') setup_logging(__fnm)