正如标题所说,我已经为php错误日志设置了最大长度,但它似乎保持了比1024更大的增长。我正在使用正确的php.ini,我重新启动了apache等。 php日志的权限是666。
答案 0 :(得分:23)
正如PHP的典型情况一样,从配置设置名称甚至documentation开始并不是很明显,但此指令适用于单个日志消息的长度 ,而不是整个日志文件的长度。
使用logrotate或类似工具来完成您的工作。
答案 1 :(得分:7)
设置log_errors的最大长度 以字节为单位在error_log信息中 关于源添加。默认 是1024和0允许不适用任何 最大长度。 这个长度是 应用于记录的错误,显示 错误以及$ php_errormsg。何时 使用整数,值为 以字节为单位。速记符号, 如本常见问题所述,也可能是 使用
答案 2 :(得分:7)
手册没有说明log_errors_max_len
仅将 引用到" body"错误消息。这意味着单个错误行仍然会比您在此处设置的长度更强。
要演示,请使用log_errors_max_len=0
(0
表示无限制)和log_errors=1
运行此代码:
<?php
// Set your server to these settings:
// error_reporting=-1
// date.timezone=utc ;to suppress the error message "It is not safe to rely on the system's timezone settings."...
echo$msg1; echo$msg2;
发送给error_log
的字节为:
[15-Jul-2015 01:23:45 utc] PHP Notice: Undefined variable: msg1 in C:\index.php on line 5
[15-Jul-2015 01:23:45 utc] PHP Notice: Undefined variable: msg2 in C:\index.php on line 5
接下来,使用log_errors_max_len=4
和log_errors=1
测试相同的代码。 (请记住重新启动服务器。)error_log
现在将是:
[15-Jul-2015 01:23:45 utc] PHP Notice: Unde in C:\index.php on line 5
[15-Jul-2015 01:23:45 utc] PHP Notice: Unde in C:\index.php on line 5
(请注意,您的错误消息前面带有&#34; [15-Jul-2015 01:23:45 utc] PHP Notice:
&#34;并附加了&#34; in C:\index.php on line 1
&#34;,导致行长于由log_errors_max_len
设置。)
此问题不仅发生在error_log
,还发生在发送到客户端的服务器输出中。要演示,请使用log_errors_max_len=4
,display_errors=1
,html_errors=0
,error_prepend_string="PPPP"
和error_append_string="AAAA"
运行上述相同的代码。发送给客户端的输出是:
PPPP
Notice: Unde in C:\index.php on line 5
AAAAPPPP
Notice: Unde in C:\index.php on line 5
AAAA
现在使用log_errors_max_len=4
,display_errors=1
, html_errors=1
,error_prepend_string="PPPP"
和error_append_string="AAAA"
运行相同的代码。 (error_prepend_string
和error_append_string
仅适用于显示的错误,而不适用于已记录的错误。)发送给客户端的输出为:
PPPP<br />
<b>Notice</b>: Unde in <b>C:\index.php</b> on line <b>5</b><br />
AAAAPPPP<br />
<b>Notice</b>: Unde in <b>C:\index.php</b> on line <b>5</b><br />
AAAA
另请注意,即使您使用ignore_repeated_errors=0
,上述测试也会返回相同的结果。这表明&#34;重复错误&#34;在裁剪错误消息之前被视为之前。
(您的结果可能因使用的SAPI而异。上面的测试是在win 8.1上使用php-5.6.7-Win32-VC11-x86 CLI完成的。)