У меня есть программа python, которая использует многопроцессорность для повышения эффективности и функцию, которая создает регистратор для каждого процесса. Функция регистратор выглядит следующим образом:Python logging setLevel() не действует
import logging
import os
def create_logger(app_name):
"""Create a logging interface"""
# create a logger
if logging in os.environ:
logging_string = os.environ["logging"]
if logging_string == "DEBUG":
logging_level = loggin.DEBUG
else if logging_string == "INFO":
logging_level = logging.INFO
else if logging_string == "WARNING":
logging_level = logging.WARNING
else if logging_string == "ERROR":
logging_level = logging.ERROR
else if logging_string == "CRITICAL":
logging_level = logging.CRITICAL
else:
logging_level = logging.INFO
logger = logging.getLogger(app_name)
logger.setLevel(logging_level)
# Console handler for error output
console_handler = logging.StreamHandler()
console_handler.setLevel(logging_level)
# Formatter to make everything look nice
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
console_handler.setFormatter(formatter)
# Add the handlers to the logger
logger.addHandler(console_handler)
return logger
И мои функции обработки выглядеть следующим образом:
import custom_logging
def do_capture(data_dict_access):
"""Process data"""
# Custom logging
LOGGER = custom_logging.create_logger("processor")
LOGGER.debug("Doing stuff...")
Однако, независимо от того, что переменная каротаж окружения установлена, я до сих пор получать сообщения отладки журнала в консоль. Почему мой уровень ведения журналов не вступает в силу, конечно, вызовы setLevel() должны прекратить запись отладочных сообщений?
Прежде всего: 'еще if' должен быть' elif' –
@HaiVu Странно, я не получаю синтаксическую ошибку от этого. Изменено в любом случае, до сих пор нет разницы – CyberJacob
Я разместил решение, но все еще пытаюсь выяснить, почему ваш код не работает. –