0

我目前正在运行一个设置,其中根据 URL 提供不同的项目:

http://machine_address/project_nameA
http://machine_address/project_nameB
(...)

由于所有项目都在同一个项目下提供服务VirtualHost,因此我最终让每个项目都由不同的项目处理,WSGIDaemonProcess以便它们可以独立重新启动。此外,每个Daemon都根据项目设置在不同的用户下运行。

我对这个设置的唯一限制是所有Apache日志仍然进入同一个文件/var/log/apache2/

我想要的是每个项目都编写自己的日志,允许给定项目的所有者监控项目特定的日志(访问、错误、...)。

我尝试使用ErrorLogandTransferLog指令,但由于这些指令仅限于 theServerVirtualHostlevel,我无法找到划分日志的方法。

所以这个问题分为两个:

  • 如何在每个项目的基础上拥有单独的日志?
  • 有什么方法可以使用特定的组/所有者和权限创建这些日志,以便项目所有者可以读取但不能写入日志?
4

1 回答 1

0

没有办法通过 mod_wsgi 的配置来说明来自 mod_wsgi 守护进程的所有 stdout/stderr 应该转到另一个日志文件,而不是 VirtualHost 的设置。

已经考虑过了,但是某些错误消息实际上是从 Apache 子进程生成的,并且这些错误消息无法重定向到该日志文件。将消息发送到两个不同的日志而造成的混乱似乎并不值得。

如果您仍然想尝试,那么您需要做的就是在 WSGI 脚本文件中执行以下操作:

import sys
sys.stderr = sys.stdout = file('/tmp/daemon.log', 'a')
于 2011-01-15T03:56:57.083 回答