gpt4 book ai didi

python - 如何在 Python 中为导入的模块定义不同的记录器?

转载 作者:太空狗 更新时间:2023-10-30 01:22:57 24 4
gpt4 key购买 nike

我正在使用 Advanced Python Scheduler在 Python 脚本中。主程序通过使用我想要的日志文件名调用 logging.basicConfig 来定义日志。此日志也设置为“DEBUG”作为日志记录级别,因为这是我目前的脚本所需要的。

不幸的是,因为 logging.basicConfig 是以这种方式设置的,apscheduler 将其日志条目写入同一个日志文件。其中有很多,特别是因为我有一个每分钟运行一次的计划任务。

在将我的日志文件用于我自己的脚本时,有什么方法可以将 apscheduler 的日志输出重定向到另一个日志文件(不更改 apscheduler 的代码)? IE。有没有办法在我的脚本中更改每个模块输出的文件名?

我尝试阅读 module page以及用于日志记录的 HOWTO,但找不到对此的答案。

最佳答案

apscheduler 的记录器级别设置为您想要的值(例如 WARNING 以避免看到来自 apscheduler 的 DEBUG 和 INFO 消息,如下所示:

logging.getLogger('apscheduler').setLevel(logging.WARNING)

您仍会收到有关 WARNING 和更高严重性的消息。要将来自 apscheduler 的消息定向到一个单独的文件中,请使用

aplogger = logging.getLogger('apscheduler')
aplogger.propagate = False
aplogger.setLevel(logging.WARNING) # or whatever
aphandler = logging.FileHandler(...) # as per what you want
aplogger.addHandler(aphandler)

确保上面的代码只被调用一次(否则你将添加多个 FileHandler 实例 - 可能不是你想要的)。

关于python - 如何在 Python 中为导入的模块定义不同的记录器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18032967/

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