регистратор Python, регистрирующий ту же запись многочисленные времена

У меня есть такая функция инициализации регистратора:

def generate_logger():
    import logging
    LOG_FILENAME = os.path.join(PROJECT_DIR, "mylog.log")
    FORMAT = "%(asctime)s : %(message)s"
    logger = logging.getLogger()
    logger.setLevel(logging.INFO)
    fh = logging.FileHandler(LOG_FILENAME)
    formatter = logging.Formatter(FORMAT)
    fh.setFormatter(formatter)
    logger.addHandler(fh)
    return logger

И в некоторой части моего кода у меня есть такая ловля исключения:

logger = generate_logger()
except AttributeError:
    logger.error('Opps we got an error')

Странно я получаю ту же ошибку записанные 2 раза, и она может быть поймана только однажды, после того как я изменяюсь logger.error('Opps we got an error') с print "test", Я получаю "тест", распечатанный однажды.

Каковы могут быть проблема и решение.

С уважением

13
задан Hellnar 12 August 2010 в 12:16
поделиться

2 ответа

Я думаю, вы, вероятно, каким-то образом добавляете к регистратору два обработчика. Возможно, в какой-то момент добавляется неявный обработчик.

3
ответ дан 1 December 2019 в 20:42
поделиться

У вас, вероятно, есть два обработчика, которые обращаются к одному и тому же результирующему журналу.

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

2
ответ дан 1 December 2019 в 20:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: