Permissions php.ini中的log\u errors\u max\u len=1024,但php日志一直在增长

Permissions php.ini中的log\u errors\u max\u len=1024,但php日志一直在增长,permissions,php,logfiles,maxlength,Permissions,Php,Logfiles,Maxlength,正如标题所说,我已经为php错误日志设置了最大长度,但它似乎一直在增长,远远大于1024。我使用的是正确的php.ini,我重新启动了apache,等等。php日志上的权限是666。对于php来说,这是典型的,从配置设置的名称,甚至配置设置的名称来看,这并不明显,但该指令适用于单个日志消息的长度,而不是整个日志文件的长度 使用logrotate或类似的工具来完成您正在尝试的操作。已验证: 整数 设置日志错误的最大长度 以字节为单位。错误日志信息 添加了关于源的信息。默认值 is 1024和0允许

正如标题所说,我已经为php错误日志设置了最大长度,但它似乎一直在增长,远远大于1024。我使用的是正确的php.ini,我重新启动了apache,等等。php日志上的权限是666。

对于php来说,这是典型的,从配置设置的名称,甚至配置设置的名称来看,这并不明显,但该指令适用于单个日志消息的长度,而不是整个日志文件的长度

使用logrotate或类似的工具来完成您正在尝试的操作。

已验证:

整数

设置日志错误的最大长度 以字节为单位。错误日志信息 添加了关于源的信息。默认值 is 1024和0允许不应用任何 最大长度此长度为 应用于记录的错误,显示 错误,并在发生错误时发送到$php\u errormsg. 如果使用整数,则值为 以字节为单位。速记法, 如本常见问题解答所述,也可能是 用过


手册中没有说明的是,仅引用了错误消息的“正文”。这意味着一行错误仍将大于此处设置的长度

为了演示,请使用
log\u errors\u max\u len=0
0
表示无限制)运行此代码,并:

接下来,用
log\u errors\u max\u len=4
log\u errors=1
测试相同的代码。(请记住重新启动服务器。)
错误日志现在将是:

[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
‏
(请注意,您的错误消息前面加了“
[15-Jul-2015 01:23:45 utc]PHP通知:
”并在C:\index.PHP中的第1行添加了“
”,导致比
日志错误最大长度设置的行长)

此问题不仅发生在
错误日志中,还发生在发送到客户端的服务器输出中。为了演示,请使用
log\u errors\u max\u len=4
、和运行上述相同的代码。发送到客户端的输出为:

PPPP
Notice: Unde in C:\index.php on line 5
AAAAPPPP
Notice: Unde in C:\index.php on line 5
AAAA
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
现在使用
log\u errors\u max\u len=4
display\u errors=1
html\u errors=1
error\u prepend\u string=“PPPP”
error\u append\u string=“AAAA”
运行相同的代码。(
error\u prepend\u string
error\u append\u string
仅适用于显示的错误,而不适用于记录的错误。)发送到客户端的输出为:

PPPP
Notice: Unde in C:\index.php on line 5
AAAAPPPP
Notice: Unde in C:\index.php on line 5
AAAA
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
PPPP
注意:在第5行的C:\index.php中取消 AAAAPPPP
注意:在第5行的C:\index.php中取消 AAAA
还要注意的是,即使使用,上述测试也会返回相同的结果。这表明在裁剪错误消息之前,会考虑“重复错误”


(根据使用的SAPI,您的结果可能会有所不同。上述测试是使用win 8.1上的php-5.6.7-Win32-VC11-x86 CLI完成的。)

出于好奇,此指令是否配置了文件的总长度(这没有什么意义,因为默认值为1024字节),或者只有一个条目/一行的最大长度?有几个
php.ini
配置参数以某种非直观的方式协同工作。在您的系统上,
log errors
error log
的值是多少?该文档显然不正确。log\u errors是一个布尔值,所以“log\u errors的最大长度”是毫无意义的。@Adrien文件是一个bug