例如:
php.ini文件

...
;将错误记录到指定文件。
error_log = c:/php/php.log
...

错误日志文件(c:/php/php.log)包含以下格式的每个条目:

[2011年6月12日12:58:55] PHP注意: undefined variable :在第2行\r\r\n的C:\www\phpinfo.php中进行测试
[2011年6月12日12:59:01] PHP注意: undefined variable :在第2行\r\r\n的C:\www\phpinfo.php中进行测试
[2011年6月12日13:01:12] PHP注意: undefined variable :在第2行\r\r\n的C:\www\phpinfo.php中进行测试
[2011年6月12日13:02:11] PHP注意: undefined variable :在第2行\r\r\n的C:\www\phpinfo.php中进行测试
[2011年6月12日13:11:23] PHP注意: undefined variable :在第2行\r\r\n的C:\www\phpinfo.php中进行测试
[2011年6月12日13:12:10] PHP注意: undefined variable :在第2行\r\r\n的C:\www\phpinfo.php中进行测试

两个回车符和每错误一条线换一行。

为什么会发生?
如何将错误日志文件更改为默认格式:

[2011年6月12日12:58:55] PHP注意: undefined variable :在第2行\r\n的C:\www\phpinfo.php中进行测试
[2011年6月12日12:59:01] PHP注意: undefined variable :在第2行\r\n的C:\www\phpinfo.php中进行测试
[2011年6月12日13:01:12] PHP注意: undefined variable :在第2行\r\n的C:\www\phpinfo.php中进行测试
[2011年6月12日13:02:11] PHP注意: undefined variable :在第2行\r\n的C:\www\phpinfo.php中进行测试
[2011年6月12日13:11:23] PHP注意: undefined variable :在第2行\r\n的C:\www\phpinfo.php中进行测试
[2011年6月12日13:12:10] PHP注意: undefined variable :在第2行\r\n的C:\www\phpinfo.php中进行测试

PHP版本5.3.6
Apache/2.2.15(Win32)
在Windows 7 Home Basic和Windows XP SP3上测试,结果相同。

php.ini文件仅包含两个字符串

log_errors =开
error_log = c:/服务器/php.log

apache phpinfo()脚本-> http://pastehtml.com/view/awvx1vgpp.html

PS。

伺服器:nginx 1.0.4
FastCGI + PHP版本5.3.6

一切都按预期进行。
nginx phpinfo()脚本-> http://pastehtml.com/view/awvwvk9p9.html

最佳答案

还有更多的ini指令来控制输出到错误日志中。这些在this PHP manual page上解释。
默认情况下,PHP在不加载ini的情况下运行,仅设置了error_log并启用了日志记录,因此它仅输出一行。您也可以在系统上进行测试,并且可以很好地在命令行界面(CLI)“服务器应用程序编程接口(interface)(API)[SAPI]”中进行演示:

php -n -d error_log=./error.log -d log_errors=1 -r 'error;'
使用此命令进行隔离运行,并将其与您的输出进行比较。如果它也有两个行尾,那么这可能是您的php版本的错误。
如果PHP版本没有问题(原始发布(OP)中不是这种情况),则您的应用程序中的某些设置似乎需要更改。您需要找出哪个设置。可能可以通过注册own error handler然后转储ini设置来找到它。
最后但并非最不重要的一点是,如果这不是对行尾的误解(请参阅我的评论),那么您可能还需要查看与错误显示有关的名为error_prepend_stringerror_append_string的ini设置(而不是错误日志记录)。

10-08 09:28
查看更多