gpt4 book ai didi

python - python 日志记录如何获取它的配置

转载 作者:行者123 更新时间:2023-11-28 21:27:46 25 4
gpt4 key购买 nike

我曾经使用过 Python 日志记录,它工作正常。 logging.basicConfig(...) 设置在一个模块(一个some.py 文件)中,然后我们可以在任何地方使用logging。显然,logging 是全局的。

问题是当我们不调用 basicConfig(...) 出现的 module 时(在 some.py 文件)? logging 是扫描所有包吗?

即使将 logging.basicConfig(...) 放入 any.py 中,模块 (any.py) 也永远不会获取导入或未在任何地方使用,日志记录设置生效!

最佳答案

要了解日志记录,您必须深入研究 Python 的标准库源代码。

技巧是这样的:

#/usr/lib/python3.2/logging/__init__.py
...
root = RootLogger(WARNING)
Logger.root = root
Logger.manager = Manager(Logger.root)
...

# and
def basicConfig(**kwargs):
...
hdlr = StreamHandler(stream)
fs = kwargs.get("format", BASIC_FORMAT)
dfs = kwargs.get("datefmt", None)
style = kwargs.get("style", '%')
fmt = Formatter(fs, dfs, style)
hdlr.setFormatter(fmt)
root.addHandler(hdlr)

因此,当您使用某些参数调用 basicconfig() 时,将设置 root 记录器。最后getLogger:

def getLogger(name=None):
"""
Return a logger with the specified name, creating it if necessary.

If no name is specified, return the root logger.
"""
if name:
return Logger.manager.getLogger(name)
else:
return root

关于python - python 日志记录如何获取它的配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10006017/

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