"Не удалось найти обработчики для регистратора"LOGGER_NAME"", пока программа запускается как демон

Вопросы по сообщению

Не найдены обработчики для регистратора "X"

от питона logging модуль, кажется, довольно распространенный здесь, на SO, но я еще не нашел тот, который касается моего случая.

Мое приложение имеет эту проблему, только когда оно запускается как демон, поэтому я предполагаю, что я не настраиваю что-то там правильно. Я использую пакет python-daemon в Python 2.7.

мой __init__.py Файл инициализирует регистратор с помощью следующей функции:

def init_logger(logger_name, log_file):
    '''
    Returns: (Logger, [LoggerFH])
    '''
    logger = logging.getLogger(logger_name)

    ch = logging.StreamHandler()


    ch.setLevel(level=logging.DEBUG)
    fh = logging.FileHandler(log_file)
    fh.setLevel(level=logging.DEBUG)
    formatter = logging.Formatter('%(asctime)s %(levelname)s %(message)s')
    fh.setFormatter(formatter)

    logger.addHandler(fh)
    return logger, [fh, ch]

Функция вызывается следующим образом:

logger, logger_fhs = init_logger('logger_name', 'logger_file_path')

Затем демон инициализируется так:

context = daemon.DaemonContext(
              files_preserve=map(operator.attrgetter('stream'), logger_fhs)
          )
with context:
    bombs_away(args) # This application does not actually launch any bombs :)

Что мне не хватает? Что еще я могу проверить, чтобы найти источник сообщения?

1 ответ

Решение

Один из моих модулей пытался вызвать регистратор и записать сообщение во время импорта, которое было бы до init_logger назывался.

Другие вопросы по тегам