运行官方php:7.3-fpm-alpine Docker 映像。我在控制台上得到以下输出:NOTICE: the log buffer is full (1024). The access log request has been truncated.
access.format
在配置中配置了一个自定义www.conf
。另外,里面还设置了以下配置php-fpm.conf
:
log_limit = 32768
log_buffering = yes
为了能够在一行中写入长度超过 1024 个字符的日志,如PHP 文档。
否则使用默认值。
这是必要的,因为日志是从 stdout 和 stderr 逐行读取并存储在中央日志记录工具中。因此单个日志消息可能不会分成多行。
示例请求中 PHP-FPM 打印一些日志消息,每行一条:
{"Timestamp":"2020-05-20T08:06:43+0000","MessageTemplate":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36","Properties":{"level":"ERROR","message":"File public//media/svg/2020-03/icon_info.svg (ID 44) does not exists in filesystem.","channel":"file","referer":"","request_uri":"https://localhost/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url","user_id":"1","user":"admin","memory_usage":"16 MB"}}
{"Timestamp":"2020-05-20T08:06:44+0000","MessageTemplate":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36","Properties":{"level":"ERROR","message":"File public//media/svg/2020-03/icon_info.svg (ID 44) does not exists in filesystem.","channel":"file","referer":"","request_uri":"https://localhost/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url","user_id":"1","user":"admin","memory_usage":"16 MB"}}
{"Timestamp":"2020-05-20T08:06:48+0000","MessageTemplate":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36","Properties":{"level":"ERROR","message":"File public//media/svg/2019-09/safari-pinned-tab.svg (ID 21) does not exists in filesystem.","channel":"file","referer":"","request_uri":"https://localhost/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url","user_id":"1","user":"admin","memory_usage":"26 MB"}}
{"Timestamp":"2020-05-20T08:06:48+0000","MessageTemplate":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36","Properties":{"level":"ERROR","message":"File public//media/svg/2019-09/safari-pinned-tab.svg (ID 21) does not exists in filesystem.","channel":"file","referer":"","request_uri":"https://localhost/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url","user_id":"1","user":"admin","memory_usage":"26 MB"}}
{"Timestamp":"2020-05-20T08:06:48+0000","MessageTemplate":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36","Properties":{"level":"ERROR","message":"File public//media/svg/2019-09/safari-pinned-tab.svg (ID 21) does not exists in filesystem.","channel":"file","referer":"","request_uri":"https://localhost/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url","user_id":"1","user":"admin","memory_usage":"26 MB"}}
{"Timestamp":"2020-05-20T08:06:49+0000","MessageTemplate":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36","Properties":{"level":"ERROR","message":"File public//media/svg/2019-09/safari-pinned-tab.svg (ID 21) does not exists in filesystem.","channel":"file","referer":"","request_uri":"https://localhost/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url","user_id":"1","user":"admin","memory_usage":"26 MB"}}
{"Timestamp":"2020-05-20T08:06:50+0000","MessageTemplate":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36","Properties":{"level":"ERROR","message":"File public//media/svg/2019-09/safari-pinned-tab.svg (ID 21) does not exists in filesystem.","channel":"file","referer":"","request_uri":"https://localhost/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url","user_id":"1","user":"admin","memory_usage":"26 MB"}}
{"Timestamp": "2020-05-20T08:06:51+0000", "MessageTemplate": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36", "Properties": {"level": "INFO", "channel": "php-fpm", "type": "access", "remote_address":"172.20.0.6", "host": "localhost", "method": "GET", "url":"GET /long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url
NOTICE: the log buffer is full (1024). The access log request has been truncated.
{"Timestamp": "2020-05-20T08:06:53+0000", "MessageTemplate": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36", "Properties": {"level": "INFO", "channel": "php-fpm", "type": "access", "remote_address":"172.20.0.6", "host": "localhost", "method": "GET", "url":"GET /de/api/cookie-banner", "server_protocol": "HTTP/2.0", "status_code": "200", "referrer": "https://localhost/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/long-url/
NOTICE: the log buffer is full (1024). The access log request has been truncated.
NOTICE: the log buffer is full (1024). The access log request has been truncated.
第一个日志条目(显示正确)有 1811 个字符,因此超过 1024 个字符和 1024 个字节。最后两个日志消息被截断,并打印了缓冲区已满的消息。我也尝试过关闭log_buffering = yes
,但对此行为没有任何影响。
有什么方法可以防止这种情况发生?获取完整的日志,而不会被截断。
编辑:仅影响访问日志。应用程序写入的日志有效。
消息写在这里:https://github.com/php/php-src/blob/master/sapi/fpm/fpm/fpm_log.c#L153
以及此处定义的日志缓冲区大小:https://github.com/php/php-src/blob/master/sapi/fpm/fpm/fpm_log.c#L25
我在存储库中找不到 的任何定义MAX_LINE_LENGTH
。还编译了它并搜索了MAX_LINE_LENGTH
,但没有结果。
答案1
我已经修补了 PHP 源代码并自行编译。
将常量的值增加到MAX_LINE_LENGTH
8192。现在长度超过 1024 个字符的 PHP-FPM 访问日志也能正常工作。
使用的补丁:
diff --git a/sapi/fpm/fpm/fpm_log.c b/sapi/fpm/fpm/fpm_log.c
index a09e80a490..63cd221ce9 100644
--- a/sapi/fpm/fpm/fpm_log.c
+++ b/sapi/fpm/fpm/fpm_log.c
@@ -19,11 +19,7 @@
#include "fastcgi.h"
#include "zlog.h"
-#ifdef MAX_LINE_LENGTH
-# define FPM_LOG_BUFFER MAX_LINE_LENGTH
-#else
-# define FPM_LOG_BUFFER 1024
-#endif
+# define FPM_LOG_BUFFER 8192
static char *fpm_log_format = NULL;
static int fpm_log_fd = -1;
PHP-src 上的问题:https://github.com/php/php-src/pull/5634