Я пишу серверное приложение, которое должно иметь возможность регистрироваться на разных уровнях как на консоли, так и в файле журнала.
Проблема в том, что если logging.basicConfig () установлен, он будет регистрироваться на консоли, но его необходимо установить в главном потоке.
Он также может быть установлен с помощью logging.basicConfig (filename = 'logger.log') для записи в файл.
Установка дескриптора для ведения журнала консоли (logging.StreamHandler ()) или ведения журнала файлов (logging.FileHandler ()) дополняет набор параметров logging.baseconfig ().
Проблема в том, что настройки не являются независимыми.
Я имею в виду, что уровень логирования logging.baseConfig () должен включать уровень обработчика, иначе он не будет регистрироваться.
Так что, если я установлю baseConfig для входа в файл, а StreamHandler для входа в консоль, уровень журнала файла должен быть ниже уровня консоли.
(Кроме того, опция basicConfig регистрирует все остальные журналы.)
Я попытался создать два дескриптора, один для консоли и один для файла журнала, они работают, но независимо от типа журнала, указанного в basicConfig (), все равно будут отображаться дублирующие сообщения.
Есть ли способ отключить вывод basicConfig ()?
Или каким-либо другим способом реализовать эти варианты?
Спасибо.