import os
from logging import config as cf, getLogger
from .__env_config import config
from .base import get_project_path


def build_logger(config, name='base'):
    if 'handlers' in config and 'file' in config['handlers']:
        file = config['handlers']['file']
        path = os.path.join(get_project_path(), file["filename"])
        os.makedirs(os.path.split(path)[0], exist_ok=True)
        file["filename"] = os.path.abspath(path)
    cf.dictConfig(config)
    return getLogger(name)


if 'logger' in config:
    logger = build_logger(config['logger'])