gpt4 book ai didi

python-3.x - 在 StreamHandler 的 logging.basicConfig 中设置的自定义格式

转载 作者:行者123 更新时间:2023-12-01 13:18:05 40 4
gpt4 key购买 nike

我在基本配置中设置了两个日志处理程序。 FileHandler 记录到文件,StreamHandler 记录到标准输出。

logging.basicConfig(
format="%(asctime)s [%(threadName)-12.12s] [%(levelname)-5.5s] %(message)s",
level=logging.INFO,
handlers=[
logging.FileHandler("/my/log/file.log"),
logging.StreamHandler(sys.stdout)
]
)

目前,上面的代码工作正常,但是,我希望我的 StreamHandler 输出不同的格式,只是 %(message)

有没有办法在我的 logging.basicConfig 中指定它?

最佳答案

预定义 StreamHandler 并在将其传递给 basicConfig 之前设置您想要的自定义格式:

handler_sh = logging.StreamHandler(sys.stdout)
handler_sh.setFormatter(logging.Formatter("%(message)s"))

您现在可以将已创建的 handler 和已设置的格式化程序传递给 basicConfig:

logging.basicConfig(
format="%(asctime)s [%(threadName)-12.12s] [%(levelname)-5.5s] %(message)s",
level=logging.INFO,
handlers=[
logging.FileHandler("/my/log/file.log"),
handler_sh
]
)

只有 FileHandler 采用 basicConfig 中传递的 format:

Any handlers which don’t already have a formatter set will be assigned the default formatter created in this function.

关于python-3.x - 在 StreamHandler 的 logging.basicConfig 中设置的自定义格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52712204/

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