2

我有一个 mod_wsgi 服务器设置,有 5 个进程和一个 celery 工作队列(其中 2 个)都在同一个 VM 上。我遇到了记录器相互踩踏的问题,虽然如果您使用 python 多处理似乎有一些解决方案,但我看不出这如何适用于 mod_wsgi 进程以及 celery 进程。

其他人都在做什么来解决这个问题?celery 任务使用的代码与网络服务器代码记录在相同的文件中。

我是否必须以某种方式将 pid 添加到日志文件名?看起来它可能会因为大量具有唯一名称的日志文件而快速变得混乱,并且没有真正连贯的方式将它们全部重新组合在一起。

我是否必须编写一个允许所有进程登录到它的日志守护程序?如果是这样,你在哪里启动它,以便它为所有可能想要记录的进程做好准备......

当然,这有某种理智的模式,我只是还不知道它是什么。

4

1 回答 1

2

文档中所述,您可以使用单独的服务器进程来侦听套接字并记录到不同的目的地,并具有您想要的任何日志记录配置(在文件、控制台等方面)。其他进程只需配置 aSocketHandler将其事件发送到服务器进程。这通常比文件名中带有 pid 的单独日志文件要好。

日志记录文档包含一个示例套接字服务器实现,您可以根据自己的需要进行调整。

于 2013-10-14T06:29:51.420 回答