Python日志处理程序dictConfig配置选项列表?

1 投票
1 回答
1339 浏览
提问于 2025-04-17 07:10

我在哪里可以找到关于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)

这样来获取配置好的对象。任何不符合有效标识符的键都会被忽略。在处理器的情况下,levelformatterfilters 这些参数在构造函数调用时也会被忽略,因为它们在日志配置中有特殊的意义。

撰写回答