使用以下LogFormat
:
LogFormat "%h %l %u %t \"%r\" %>s %b php(%{mod_php_memory_usage}n)" vhost_combined_memory
Apache似乎没有为每个请求输出PHP使用的内存:
IP - - [04/Feb/2014:23:22:49 +1300] "GET /icinga-web/modules/cronks/statusOverall/json?_dc=1391509810557 HTTP/1.1" 200 554 php(%zu)
IP - - [04/Feb/2014:23:22:50 +1300] "GET /icinga-web/modules/cronks/monitorPerformance/json?_dc=1391509810614 HTTP/1.1" 200 378 php(%zu)
IP - - [04/Feb/2014:23:23:49 +1300] "GET /icinga-web/modules/appkit/servertime HTTP/1.1" 200 33 php(%zu)
而不是数字,%zu
出现。
我可以在服务器上进行更改以使此数据正确显示在我的日志中吗?
答案 0 :(得分:0)
自己遇到这个问题。问题不在于php甚至Apache httpd。这是APR。他们实现了自己的printf扩展,而不是使用stdio。
所以你可以看到第850行... https://svn.apache.org/viewvc/apr/apr/trunk/strings/apr_snprintf.c?view=markup
...他们展开的支持字符不包含'z'字符。
所以我不相信没有修改源代码就可以修复。在php源代码中将%zu切换为%lu可能会有所帮助。