#python #logging
Вопрос:
Согласно документам, это должно быть простым делом при добавлении идентификатора процесса в инструкции в журнале. Вот что у меня есть:
import logging
logging.basicConfig(format='%(process)d %(asctime)s %(levelname)-8s %(message)s',
filename = ns.logFile, level=ns.loggingLevel,
datefmt='%Y-%m-%d %H:%M:%S')
Это хорошо печатается, за исключением того, что отсутствует идентификатор процесса:
2021-08-13 11:36:01 DEBUG Got here!!!9
Что я делаю не так?
Ответ №1:
Согласно документам logging.basicConfig
ничего не делает, если в корневом регистраторе уже настроены обработчики, если только сила аргумента ключевого слова не установлена в значение True. Функции debug(), info(), warning(), error() и critical() автоматически вызовут функцию basicConfig (), если для корневого регистратора не определены обработчики.
Я подозреваю, что обработчики уже добавлены до вашей конфигурации. Поэтому я думаю, что вам придется форсировать свою конфигурацию с помощью :
import logging
logging.basicConfig(
force=True,
format='%(process)d %(asctime)s %(levelname)-8s %(message)s',
filename = ns.logFile, level=ns.loggingLevel, datefmt='%Y-%m-%d %H:%M:%S'
)