【问题标题】:error_log() do not take log_errors_max_len valueerror_log() 不采用 log_errors_max_len 值
【发布时间】:2016-06-05 07:25:58
【问题描述】:

在 Apache 中运行的 PHP 5.5 Web 应用程序在使用 error_log() 登录时不会采用 log_errors_max_len 的值。 无论log_errors_max_len 的值设置为(0, 1024, 10000, ...)如何,如果消息长度太大,输出总是以相同的长度修剪。

我已经运行了以下脚本(通过浏览器),/var/log/apache2/error.log 中的输出总是一个 8107 个字符的字符串。 log_errors_max_len 显示的值始终是 ini_set('log_errors_max_len', XXXX); 设置的正确值。

<?php
error_reporting(E_ALL|E_STRICT);
ini_set('display_errors',1);
ini_set('log_errors',1);
ini_set('log_errors_max_len',2000);

$msg = '';
$msg2 = '';
for ($i = 0; $i < 1000; $i++) {
    $msg2 = $i.'_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
    $msg = $msg.substr($msg2, 0, 100);
}
error_log(print_r($msg, true), 0);
error_log(ini_get('log_errors_max_len'), 0);
?>

另一方面,在 CLI 中运行并记录到 stderr 的同一脚本始终显示整个未修剪的字符串,无论 log_erros_max_len 的值有多小。

按照此参考PHP Error Log Ignores log_errors_max_len Setting,我收到了一份 PHP 中的错误报告,其状态为“不是错误”并且没有更多相关信息。


Ubuntu 14.04

Apache 2.4.7

PHP 5.5.9

【问题讨论】:

    标签: php logging


    【解决方案1】:

    我在使用 Nginx 而不是 Apache 以及相同的 Ubuntu 和 PHP 版本时遇到了同样的问题。挖掘PHP documentation发现log_errors_max_len设置不影响error_log()功能,显然没有什么可做的。

    【讨论】:

    • 知道如何增加或删除error_log()发送的消息的长度限制吗?
    猜你喜欢
    • 1970-01-01
    • 2015-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-13
    • 2021-11-08
    相关资源
    最近更新 更多