Идентификатор процесса не печатается в журнале python

#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'
       )