【发布时间】:2015-07-06 16:48:19
【问题描述】:
我正在用 python 编写一个框架来实现一些服务器。它们连续运行,等待作业,当找到一个或多个作业时,它们可以处理它,启动一个或多个线程来处理它,或者启动一个子进程来处理它。当它在寻找作业时,日志数据应该进入一个文件,该文件将每天轮换。每个作业的日志数据将进入一个单独的作业日志文件,其名称基于作业 ID。
这是我第一次真正尝试使用 python 日志记录。这样做的“正确”方法是什么?一个想法是为每个作业添加一个子记录器,但似乎没有办法删除子记录器(我认为通过处理库代码并不难,但我假设没有 remove_child( ) 方法是有原因的)。
我正在考虑的另一种方法是为每个作业设置一个处理程序,并根据当前线程为每个作业设置一个过滤器。这样,所有处理程序都将被过滤掉,除了活动线程中的处理程序,它将记录到作业日志文件中。这种方式很容易在处理程序完成时删除它们。这可能会起作用 - 我预计任何工作一次不会有超过 10 个线程处于活动状态,因此为每个工作运行一个过滤器并不难。这是最好的方法吗?还是我没有想到的其他东西?
【问题讨论】:
标签: python multithreading logging