2015-08-21 2 views
0

У меня есть приложение с флагом, которое работает под Blueprint. Каждое приложение имеет свой независимый журнал, который записывает в stdout. Проблема возникает всякий раз, когда вызывается какой-либо HTTP API, журнал этого API печатается на экране 5 раз, но запрос выполняется только один раз. Как исправить регистратор, чтобы каждый запрос печатался только один раз?Python Blueprint duplicate Logs

Python 2.7.10 Колба 0.10.1

+0

Вы добавляете обработчик регистрации, который регистрируется в STDOUT в каждом проекте или вы просто создаете регистратор? –

+0

Каждое приложение имеет свой собственный независимый регистратор, который записывает на stdout – Sawan

ответ

1

Ваша проблема почти наверняка, что вы создали 5 различных лесозаготовительных обработчики, а также 5 различных регистраторов. Встроенная система ведения журнала Python представляет собой иерархическую систему ведения журнала (в отличие от обычных регистраторов, созданных для NodeJS, например). Все регистраторы формируют дерево во время выполнения, а сообщения журнала выходят за дерево и обрабатываются обработчиками, прикрепленными к дереву. Регистрация нормального обработчика регистрирует обработчики в корне дерева, поэтому каждый обработчик видит сообщения от каждого регистратора (поэтому ваши сообщения создаются пять раз).

Решение состоит в том, чтобы создать один регистратор на чертеж, но не регистрировать обработчик для регистратора чертежа. Вместо этого зарегистрируйте один обработчик на уровне приложения.