如何使用dictConfig设置请求模块的日志级别?
问题描述:
我正在从基于fileConfig
的记录器移动到基于dictConfig
的记录器。我的请求日志级别设置为WARNING
:如何使用dictConfig设置请求模块的日志级别?
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'formatters': {
'simpleFormatter': {
'format': '%(asctime)s - %(name)-30s - %(levelname)s - %(message)s',
'datefmt' : '%Y-%m-%dT%H:%M:%S%z',
}
},
'handlers': {
'consoleHandler': {
'class': 'logging.StreamHandler',
'level': 'NOTSET',
'formatter': 'simpleFormatter',
'stream': 'ext://sys.stderr',
},
},
...
'requests.packages.urllib3.connectionpool': {
'handlers': ['consoleHandler'],
'level': 'WARNING',
'propagate': False,
},
import logging
logging.config.dictConfig(LOGGING)
同样的事情正在用fileConfig
:
[logger_requests]
level=WARNING
handlers=consoleHandler
qualname=requests.packages.urllib3.connectionpool
propagate=0
我如何可以设置为loglevel
使用dictConfig
请求模块?
答
那么,初学者的错误。如the schema documentation中所述,记录器配置必须位于dictConfig
的'loggers'
密钥内。我把它放在顶层。
来自dictConfig
的错误消息会有帮助,但会默默忽略任何不支持的密钥。
它会忽略不支持的键,因为您可以使用它们来扩展配置,如https://docs.python.org/2/library/logging.config.html#access-to-internal-objects –
@VinaySajip:谢谢,我不知道。 – dangonfast