gpt4 book ai didi

python - 每个线程创建自己的记录器实例,记录自己的事件

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

我尝试过用 Python 登录。看起来一旦线程创建了日志记录实例,它就不会被删除。但是,我的程序每分钟应该产生超过 100 个线程,并且每个线程都会创建自己的记录器,这可能会导致某种内存泄漏(垃圾收集器不会收集 logging.Logger 实例) )。

任何人都可以帮助我吗?有没有办法将记录器用于多线程应用程序?

最佳答案

在 python logging 模块中,记录器由 logging.Manager 实例管理。通常只有一个日志管理器,可用作 logging.Logger.manager。记录器通过其名称进行识别。每次使用 logging.getLogger('name') 时,此调用都会实际转发到 logging.Logger.manager.getLogger ,它保存记录器的字典并返回相同的记录器每次都针对每个'name'

因此,如果您在从线程获取记录器时不使用不同的名称,则实际上每次都使用相同的记录器实例,并且不必担心内存泄漏。

关于python - 每个线程创建自己的记录器实例,记录自己的事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10651801/

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