问题描述
||
例如:
PHP.ini文件
...
;将错误记录到指定文件。
error_log = c:/PHP/PHP.log
...
错误日志文件(c:/PHP/PHP.log)包含以下格式的每个条目:
[2011年6月12日12:58:55] PHP注意:未定义的变量:在第2行的C:\\ www \\ PHPinfo.PHP中进行测试\\ r \\ r \\ n
[2011年6月12日12:59:01] PHP注意:未定义的变量:在第2行的C:\\ www \\ PHPinfo.PHP中进行测试\\ r \\ r \\ n
[2011年6月12日13:01:12] PHP注意:未定义的变量:在第2行的C:\\ www \\ PHPinfo.PHP中进行测试\\ r \\ r \\ n
[2011年6月12日13:02:11] PHP注意:未定义的变量:在第2行的C:\\ www \\ PHPinfo.PHP中进行测试\\ r \\ r \\ n
[2011年6月12日13:11:23] PHP注意:未定义的变量:在第2行的C:\\ www \\ PHPinfo.PHP中进行测试\\ r \\ r \\ n
[2011年6月12日13:12:10] PHP注意:未定义的变量:在第2行的C:\\ www \\ PHPinfo.PHP中进行测试\\ r \\ r \\ n
两个回车符和每一错误行一行。
为什么会这样呢?
如何将错误日志文件更改为默认格式:
[2011年6月12日12:58:55] PHP注意:未定义的变量:在第2行的C:\\ www \\ PHPinfo.PHP中进行测试\\ r \\ n
[2011年6月12日12:59:01] PHP注意:未定义的变量:在第2行的C:\\ www \\ PHPinfo.PHP中进行测试\\ r \\ n
[2011年6月12日13:01:12] PHP注意:未定义的变量:在第2行的C:\\ www \\ PHPinfo.PHP中进行测试\\ r \\ n
[2011年6月12日13:02:11] PHP注意:未定义的变量:在第2行的C:\\ www \\ PHPinfo.PHP中进行测试\\ r \\ n
[2011年6月12日13:11:23] PHP注意:未定义的变量:在第2行的C:\\ www \\ PHPinfo.PHP中进行测试\\ r \\ n
[2011年6月12日13:12:10] PHP注意:未定义的变量:在第2行的C:\\ www \\ PHPinfo.PHP中进行测试\\ r \\ n
PHP版本5.3.6
Apache / 2.2.15(Win32)
在Windows 7 Home Basic和Windows XP SP3上测试,结果相同。
PHP.ini文件仅包含两个字符串
log_errors =开
error_log = c:/server/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指令来控制输出到错误日志中。如果不是对行尾有误解(请参阅我的评论),那么您可能需要查看ini设置
error_prepend_string
和error_append_string
。这两个及更多相关设置在此PHP手册页中进行了说明。
默认情况下,PHP在不加载ini的情况下运行,仅设置了error_log
并启用了日志记录,因此它仅输出一行。您也可以在系统上进行测试:
php -n -d error_log=./error.log -d log_errors=1 -r \'error;\'
使用此命令进行隔离运行,并将其与您的输出进行比较。如果它也有两个行尾,那么这可能是您的php版本的错误。
如果不是,那么在您的应用程序中,某些设置似乎需要更改。您需要找出哪个设置。可能您可以通过注册自己的错误处理程序,然后对ini设置进行伪操作来找到它。