Python日志处理程序dictConfig配置选项列表?
我在哪里可以找到关于Python日志处理器的配置选项列表呢?比如,文档提到,TimedRotatingFileHandler需要一个“when”参数。这个参数怎么用dictConfig来定义呢?
这样写可以吗?
'handlers': {
'file': {
'level': 'DEBUG',
'formatter':'default',
'class': 'logging.handlers.TimedRotatingFileHandler',
'when': 'midnight',
....
},
},
如果可以的话,dictConfig的所有选项名称和文档中的代码示例完全对应吗?我只是好奇,因为我还没有找到一个单独的页面列出可以在dictConfig中使用的选项名称。
1 个回答
4
这个想法是配置字典里的键名要和创建处理器(或者格式化器、过滤器)时使用的参数名一致。这样的话,就算是外部定义的处理器也能正常工作。假设有一个字典 config
,它存储了一个对象(比如处理器)的配置,配置代码实际上做的事情就相当于
constructor = config['class'] # or '()' for a custom object being configured
kwargs = dict([(k, config[k]) for k in config if valid_ident(k)])
obj = constructor(**kwargs)
这样来获取配置好的对象。任何不符合有效标识符的键都会被忽略。在处理器的情况下,level
、formatter
和 filters
这些参数在构造函数调用时也会被忽略,因为它们在日志配置中有特殊的意义。