Всем привет!
Ребята, вопрос такой: в моем проекте используется файл в yaml-формате для конфигурации библиотеки logging. Помимо прочего, среди библиотек есть requests, для которого мне нужно отключить логирование.
Вот как выглядит у меня блок handlers:
handlers:
file:
class: logging.FileHandler
level: INFO
formatter: file_format
filename: /tmp/jobSerializer.log
syslog:
class: logging.handlers.SysLogHandler
address: /dev/log
level: INFO
formatter: syslog_format
null:
class: logging.NullHandler
Далее, в блоке loggers пытаюсь использовать хэндлер null:
loggers:
serializer:
level: INFO
handlers: [file]
propagate: no
job_launcher:
level: INFO # уровень логирования логгера (хендлеры не могут иметь уровень более подробный)
handlers: [file] # выбор хендлеров
propagate: no # будет ли логгер распространять сообщения хендлерам, связанным с родительским логгером
requests:
handlers: [null]
propagate: no
И получаю следующую ошибку:
Traceback (most recent call last):
File "/root/work_venv/job820Maker/trunk/serializer/__init__.py", line 33, in main
logging.config.dictConfig(log_dict)
File "/usr/local/lib/python3.5/logging/config.py", line 795, in dictConfig
dictConfigClass(config).configure()
File "/usr/local/lib/python3.5/logging/config.py", line 556, in configure
for name in sorted(handlers):
TypeError: unorderable types: str() < NoneType()
Есть еще вариант поставить уровень логирования CRITICAL для requests и также не получать сообщений в лог, но хотелось бы использовать NullHandler.