Не работает DEBUG режим на файл

Сделал логгер под себя, но у меня возникла проблема, что в режиме debug в любом случае в файл должен записываться, то бишь файл тупо в этом режиме, а остальное работает по аргументу, передаваемому в функцию. Короче вся проблема обстоит в том, что даже указав принудительно debug режим в файл хэндлер, он не работает должным образом.

def _create_logger(debug_mode: Optional[bool] = False) -> logging.Logger:
    if not os.path.exists(f"{Constants.LOG_FOLDER}"):
        os.makedirs(f"{Constants.LOG_FOLDER}")
    log_file_path = os.path.join(f"{Constants.LOG_FOLDER}", f"log_{datetime.datetime.now().strftime("%Y-%m-%d_%H-%M")}.txt")

    global logger
    logger = logging.getLogger("STBLogger")
    console_handler = logging.StreamHandler()
    file_handler = logging.FileHandler(log_file_path, encoding="utf-8")
    file_handler.setLevel(logging.DEBUG) <--- вот я принудительно пытался 
выставить debug мод, однако он все равно не записывает фулл логи, однако когда 
ставишь "debug_mode = True" - все работает. По моим предположениям он 
берет зависимость из хэндлера консоли, 
однако по идеи так быть не должно (имхо)

    if debug_mode:
        logger.setLevel(logging.DEBUG)
        console_handler.setLevel(logging.DEBUG)
    else:
        logger.setLevel(logging.INFO)
        console_handler.setLevel(logging.INFO)

    file_handler.setFormatter(logging.Formatter("%(message)s"))
    logger.addHandler(file_handler)

    console_handler.setFormatter(logging.Formatter('%(message)s'))
    logger.addHandler(console_handler)

    return logger

Ответы (1 шт):

Автор решения: aarab

Проблема была решена DictConfig`ом. Код прилагаю.

def _create_logger(debug_mode: Optional[bool] = False) -> logging.Logger:
if not os.path.exists(Constants.LOG_FOLDER):
    os.makedirs(Constants.LOG_FOLDER)

log_file_path = os.path.join(Constants.LOG_FOLDER, f"log_{datetime.datetime.now().strftime('%Y-%m-%d__%H-%M')}.txt")

log_config = {
    'version': 1,
    'disable_existing_loggers': False,
    'formatters': {
        'standard': {
            'format': '%(asctime)s  %(levelname)-10s | [%(body)s] | %(message)s',
            'datefmt': '%H:%M:%S'
        },
    },
    'handlers': {
        'console': {
            'level': 'DEBUG' if debug_mode else 'INFO',
            'class': 'logging.StreamHandler',
            'formatter': 'standard'
        },
        'file': {
            'level': 'DEBUG',
            'class': 'logging.FileHandler',
            'filename': log_file_path,
            'encoding': 'utf-8',
            'formatter': 'standard'
        },
    },
    'loggers': {
        'STBLogger': {
            'level': 'DEBUG',
            'handlers': ['console', 'file'],
            'propagate': False
        },
    }
}

logging.config.dictConfig(log_config)

global logger
logger = logging.getLogger("STBLogger")
→ Ссылка