使用通过mod_fcgid运行Apache和PHP的服务器,我希望将所有由PHP处理的请求logging到一个单独的文件中,以便更好地了解哪些请求正在通过PHP进行处理,而不是直接通过文件系统进行处理。
这是一个在.htaccess中有一些相当复杂的重写规则的网站,它通过mod_rewrite将caching的PHP请求转换成静态文件请求,所以caching的请求甚至不会触及PHP子系统。
因此,我想确保我所做的任何日志自定义都不会被mod_rewrite魔法抛弃。 仅仅因为请求URI以.php结尾,并不意味着请求最终会被PHP处理。 我需要基于所有重写规则应用后发生的任何事情。
看起来像最简单直接的方法就是将日志代码包含在每个PHP页面中,可能在最后调用flush()来发送页面的输出,写入日志文件,或者如果设置locking并从那里写文件太昂贵,发送一些东西到zeromq(其中有一个PHP库,我相信示例代码)或某种等待的服务器,让该服务器接受,断开,然后locking/写入日志。 这样,如果从PHP调用它只会loggingPHP运行的内容。