gpt4 book ai didi

python - 如果logging.config.dictConfig()不影响现有记录器,那么它有什么意义?

转载 作者:太空宇宙 更新时间:2023-11-03 16:25:24 25 4
gpt4 key购买 nike

使用 logging.Logger 提供的 API 配置记录器(如 b.py 中所示)可配置现有记录器。使用 logging.config.dictConfig() 配置日志记录不会配置现有记录器,如 a.py 所示。

*.py 文件

~/bar                                                                                    
▶ tail -n +1 *.py
==> a.py <==
import logging
from logging.config import dictConfig

logger = logging.getLogger(__name__)

logging_config = dict(
version = 1,
handlers = {
'h': {'class': 'logging.StreamHandler'}
},
root = {
'handlers': ['h'],
'level': logging.DEBUG
}
)

dictConfig(logging_config)

logger.debug("This is a test")

==> b.py <==
import logging

logger = logging.getLogger(__name__)

logging.getLogger().setLevel(logging.DEBUG)
logging.getLogger().addHandler(logging.StreamHandler())

logger.debug("This is a test")

输入/输出

~/bar                                                                                    
▶ python -m a

~/bar
▶ python -m b
This is a test

如果库在设置 logging.config.dictConfig() 之前创建记录器,则记录器将无法正确配置。图书馆如何处理这个问题?他们是否期望将日志配置传递给他们?他们是否只是避免在导入过程中创建记录器?

最佳答案

logging.config.dictConfig() 确实会影响现有记录器的配置。但是, dictConfig() 将默认禁用现有记录器,除非根据 disable_existing_loggers = False 在传递给 dictConfig() 的字典中定义了 16.7.2.1. Dictionary Schema Details

关于python - 如果logging.config.dictConfig()不影响现有记录器,那么它有什么意义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38034485/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com