gpt4 book ai didi

python - 我可以一次设置所有加载模块的日志记录级别吗?

转载 作者:行者123 更新时间:2023-12-01 06:27:47 25 4
gpt4 key购买 nike

  • 主模块
  • 模块A
  • 模块B

主模块使用模块的功能。模块的功能包括logger.info或logger.warning..等等,以显示我在代码中犯的错误。

目标:
- 记录 main、A 和 B 中的所有内容。
- 目前,在主 Jupyter Notebook 中设置 A 和 B 的日志记录级别的教师。 (例如,当我需要有关 A 函数的更多信息时,请将日志记录级别从 INFO 增加到 DEBUG)

顺便说一句,主脚本有:

import logging, sys

# create logger
logger = logging.getLogger('logger')
logger.setLevel(logging.DEBUG)

# create console handler and set level to debug
fh = logging.FileHandler('process.log')
logger.setLevel(logging.DEBUG)

ch = logging.StreamHandler(sys.stdout)
ch.setLevel(logging.DEBUG)

# create formatter
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s\n')

# add formatter to ch
fh.setFormatter(formatter)

# add ch to logger
logger.addHandler(fh)
logger.addHandler(ch)

我想使用 Logger 对象并配置该对象,而不是日志记录的基本配置。但如果我不能,其他方法也可以。

最佳答案

如果你这样做:

logger = logging.getLogger('logger')

进入模块 A 和模块 B,那么它们应该可以访问与主文件相同的记录器。从那里,您可以随时设置任何级别。例如

# ../module_a.py

import logging

logger = logging.getLogger('logger')

logger.setLevel(whatever) # Now all instances of "logger" will be set to that level.

基本上,记录器是按名称全局注册的,并且可以通过日志记录模块直接从任何其他模块访问。

关于python - 我可以一次设置所有加载模块的日志记录级别吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60050928/

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