Nginx/PHP-FPM 长日志行被截断

Nginx/PHP-FPM 长日志行被截断

我不确定这是 Nginx 还是 PHP-FPM 设置,但长日志行会被截断。是否有设置可以增加最大日志行长度?

答案1

1024 个字符的限制是硬编码在 php-fpm 中,而不是 nginx 中。

如果要超过 2048 个字符,则需要重新编译 nginx 和 php-fpm,否则只需编译 php-fpm。

这里有一个针对 8192 个字符的完整解决方案及其补丁: https://forums.freebsd.org/threads/56543/

答案2

我建议使用 php 7.3

https://www.php.net/ChangeLog-7.php

修复错误 #69031(进入 stdout/stderr 的长消息被错误截断) - 添加了新的日志相关的 FPM 配置选项:log_limit、log_buffering 和 decorate_workers_output。

答案3

如果你需要日志行长度超过 2048 字节,则需要重新编译 Nginx。从http://wiki.nginx.org/HttpLuaModule

Nginx 核心对错误消息的长度有一个硬编码限制。它最多为 2048 字节,包括尾随换行符和前导时间戳。您可以通过修改 Nginx 源代码树中 src/core/ngx_log.h 文件中的 NGX_MAX_ERROR_STR 宏定义来手动修改此限制。如果消息大小超出此限制,Nginx 核心将自动截断消息文本。

答案4

打开/etc/php-fpm.conf并更新的值log_limit = 4096或如果您愿意则更高,然后systemctl restart php-fpm

相关内容