Windows上的PHP错误日志文件格式(php.ini error_log指令)

举个例子:
php.ini文件

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

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

 [12-Jun-2011 12:58:55] PHP注意:未定义的variables:在第二行的C:\ www \ phpinfo.php中testing\ r \ r \ n
 [12-Jun-2011 12:59:01] PHP注意:未定义的variables:在第二行的C:\ www \ phpinfo.php中testing\ r \ r \ n
 [12-Jun-2011 13:01:12] PHP注意:未定义的variables:在第2行的C:\ www \ phpinfo.php中testing\ r \ r \ n
 [12-Jun-2011 13:02:11] PHP注意:未定义variables:在第2行的C:\ www \ phpinfo.php中testing\ r \ r \ n
 [12-Jun-2011 13:11:23] PHP注意:未定义的variables:在第2行的C:\ www \ phpinfo.php中testing\ r \ r \ n
 [12-Jun-2011 13:12:10] PHP注意:未定义的variables:在第2行的C:\ www \ phpinfo.php中testing\ r \ r \ n

两个回车字符和一个新行每一个错误行。

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

 [12-Jun-2011 12:58:55] PHP注意:未定义的variables:在第二行的C:\ www \ phpinfo.php中testing\ r \ n
 [12-Jun-2011 12:59:01] PHP注意:未定义的variables:在第2行的C:\ www \ phpinfo.php中testing\ r \ n
 [12-Jun-2011 13:01:12] PHP注意:未定义的variables:在第2行的C:\ www \ phpinfo.php中testing\ r \ n
 [12-Jun-2011 13:02:11] PHP注意:未定义的variables:在第2行的C:\ www \ phpinfo.php中testing\ r \ n
 [12-Jun-2011 13:11:23] PHP注意:未定义的variables:在第二行的C:\ www \ phpinfo.php中testing\ r \ n
 [12-Jun-2011 13:12:10] PHP注意:未定义的variables:在第2行的C:\ www \ phpinfo.php中testing\ r \ n

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

php.ini文件只包含两个string

 log_errors =开
 error_log = c:/server/php.log

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

PS。

sever:nginx 1.0.4
FastCGI + PHP版本5.3.6

一切都按预期工作。
nginx phpinfo()脚本 – > http://pastehtml.com/view/awvwvk9p9.html

有更多的ini指令来控制输出到错误日志中。 如果这不是对行结尾的误解(请参阅我的评论),那么您可能需要查看error_prepend_stringerror_append_string的ini设置。 这两个和更多的相关设置在这个PHP手册页上解释。

默认情况下,PHP运行时不加载ini,只启用了error_log设置和日志记录,它只输出一行。 你也可以在你的系统上测试:

 php -n -d error_log=./error.log -d log_errors=1 -r 'error;' 

使用此命令进行隔离运行并将其与输出进行比较。 如果它有两个行结尾,那么这可能是你的PHP版本的错误。

如果没有,那么在你的应用程序中,一些设置看起来会改变 你需要找出哪个设置。 可能你可以通过注册一个自己的错误处理程序然后重新启动ini设置来找到它。