Я хочу остановить внешний модуль для заполнения моего файла журнала, как в этом вопросе: Отключить ведение журнала для определенного пакета Файл конфигурации, вдохновленный ответом, приведен ниже. Я использую питон3.2
Моя проблема в том, что это не работает: строка «handlers=nullHandler» вызывает это:
Traceback (most recent call last):
File "./tree_browser", line 44, in <module>
logging.config.fileConfig('../log/logging.conf')
File "/usr/lib/python3.2/logging/config.py", line 79, in fileConfig
_install_loggers(cp, handlers, disable_existing_loggers)
File "/usr/lib/python3.2/logging/config.py", line 202, in _install_loggers
log.addHandler(handlers[hand])
KeyError: 'nullHandler'
И я не нахожу способа использовать этот nullHandler. Файл конфигурации:
[loggers]
keys=root,RPIO
[handlers]
keys=fileHandler
[formatters]
keys=defaultFormatter
[logger_root]
level=DEBUG
handlers=fileHandler
[logger_RPIO]
level=NOTSET
handlers=nullHandler
qualname=_RPIO.py
propagate=0
[handler_nullHandler]
class=NullHandler
level=DEBUG
[handler_fileHandler]
class=FileHandler
level=DEBUG
formatter=defaultFormatter
filemode=w
args=('../log/pilberry_core.log',)
[formatter_defaultFormatter]
format=%(asctime)s %(filename)s: %(funcName)s: %(message)s
datefmt=%Y/%m/%d %H:%M:%S
Другие неудачные попытки: пробовали без определения [handler_nullHandler], используя либо nullHandler, либо NullHandler в качестве средства форматирования, это всегда терпит неудачу одинаково.
Обратите внимание, что если я отключу RPIO_logger (путем удаления RPIO из разделов ключей [loggers]), то все остальное будет работать нормально.
Итак, как правильно использовать nullHandler?
args=()
в конфигурации обработчика, а уровень не нужен. - person kon psych   schedule 25.04.2016