Python 2.7: журнал отображается дважды, когда модуль `logging` используется в двух скриптах python
Контекст:
Python 2.7.
Два файла в одной папке:
Первый: основной сценарий.Второе: пользовательский модуль.Цель:Возможность использоватьlogging
модуль без какого-либо столкновения (см. вывод ниже).
import logging
from b import test_b
def test_a(logger):
logger.debug("debug")
logger.info("info")
logger.warning("warning")
logger.error("error")
if __name__ == "__main__":
# Custom logger.
logger = logging.getLogger("test")
formatter = logging.Formatter('[%(levelname)s] %(message)s')
handler = logging.StreamHandler()
handler.setFormatter(formatter)
logger.setLevel(logging.DEBUG)
logger.addHandler(handler)
# Test A and B.
print "B"
test_b()
print "A"
test_a(logger)
b.py:import logging
def test_b():
logging.debug("debug")
logging.info("info")
logging.warning("warning")
logging.error("error")
Выход:Как можно увидеть ниже, журнал отображаетсядважды.
python a.py
B
WARNING:root:warning
ERROR:root:error
A
[DEBUG] debug
DEBUG:test:debug
[INFO] info
INFO:test:info
[WARNING] warning
WARNING:test:warning
[ERROR] error
ERROR:test:error
Будет ли у кого-нибудь решение этого?
РЕДАКТИРОВАТЬ: не работаетtest_b()
не приведет к дублированию журнала и правильному форматированию журнала (ожидается).