PHP-FPM:“注意:日志缓冲区已满(1024)。访问日志请求已被截断。”

PHP-FPM:“注意:日志缓冲区已满(1024)。访问日志请求已被截断。”

运行官方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_LENGTH8192。现在长度超过 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

相关内容