Python logging.basicConfig устанавливает другой уровень для обработчиков - PullRequest
0 голосов
/ 04 октября 2018

У меня есть следующий код для моей регистрации:

logging.basicConfig(
                    handlers=[
                        logging.FileHandler("log.txt", "w"),
                        logging.StreamHandler()
                    ],
                    format='%(levelname)s - %(asctime)s - %(message)s',
                    datefmt='%H:%M:%S',
                    level=logging.DEBUG)

Я хотел бы установить другой уровень для моих 2 обработчиков. Но я действительно хочу быть простым, я хочу сделать это с basicConfig.

Есть ли способ, которым я могу это сделать?

Я пробовал это, но этоОшибка:

logging.basicConfig(
                    handlers=[
                        logging.FileHandler("log.txt", "w", level=logging.DEBUG),
                        logging.StreamHandler(level=logging.DEBUG)
                    ],
                    format='%(levelname)s - %(asctime)s - %(message)s',
                    datefmt='%H:%M:%S')

Ошибка типа: init () получил неожиданный аргумент ключевого слова 'level'

1 Ответ

0 голосов
/ 04 октября 2018

Я предполагаю, что вы на самом деле не собираетесь использовать DEBUG на практике для уровней обработчиков, так как они будут проходить через все сообщения (> = DEBUG) независимо от того, установлен ли уровень на DEBUG.Для более высоких уровней, которые я назвал level1 и level2 в иллюстративных целях, вы можете сделать

h1 = logging.FileHandler(...); h1.setLevel(level1)
h2 = logging.StreamHandler(...); h2.setLevel(level2)

и затем передать handlers=[h1, h2] на basicConfig.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...