【问题标题】:How to do logging with multiple django WSGI processes + celery on the same webserver如何在同一网络服务器上使用多个 django WSGI 进程 + celery 进行日志记录
【发布时间】:2013-10-07 21:49:22
【问题描述】:

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

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

我是否必须在日志文件名中添加一个 pid?如果有大量具有唯一名称的日志文件,并且没有真正连贯的方式将它们全部重新组合在一起,这似乎很快就会变得一团糟。

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

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

【问题讨论】:

    标签: python logging multiprocessing mod-wsgi


    【解决方案1】:

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

    日志记录文档包含an example socket server implementation,您可以根据自己的需要进行调整。

    【讨论】:

      猜你喜欢
      • 2010-12-02
      • 1970-01-01
      • 1970-01-01
      • 2012-12-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多