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


PHP Error log file format (php.ini error_log directive) on Windows

例如:
php.ini文件

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

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

〔12-Jun-2011 12:58:55〕PHP注意:未定义的变量:在C:''www''phpinfo.PHP的第2行测试''r''n[12-Jun-2011 12:59:01]PHP注意:未定义的变量:在C:''www''phpinfo.PHP的第2行测试''r''n〔12-Jun-2011 13:01:12〕PHP注意:未定义的变量:在C:''www''phpinfo.PHP中测试第2行''r''n[12-Jun-2011 13:02:11]PHP注意:未定义的变量:在C:''www''phpinfo.PHP的第2行测试''r''n〔12-Jun-2011 13:11:23〕PHP注意:未定义的变量:在C:''www''phpinfo.PHP中测试第2行''r''n〔12-Jun-2011 13:12:10〕PHP注意:未定义的变量:在C:''www''phpinfo.PHP中测试第2行''r''n

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

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

〔12-Jun-2011 12:58:55〕PHP注意:未定义的变量:在C:''www''phpinfo.PHP中测试第2行''r''n〔12-Jun-2011 12:59:01〕PHP注意:未定义的变量:在C:''www''phpinfo.PHP中测试第2行''r''n〔12-Jun-2011 13:01:12〕PHP注意:未定义的变量:在C:''www''phpinfo.PHP中测试第2行''r''n〔12-Jun-2011 13:02:11〕PHP注意:未定义的变量:在C:''www''phpinfo.PHP中测试第2行''r''n〔12-Jun-2011 13:11:23〕PHP注意:未定义的变量:在C:''www''phpinfo.PHP中测试第2行''r''n〔12-Jun-2011 13:12:10〕PHP注意:未定义的变量:在C:''www''phpinfo.PHP中测试第2行''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。

服务器:nginx1.0.4
FastCGI+PHP版本5.3.6

一切如预期
nginx phpinfo()脚本->http://pastehtml.com/view/awvwvk9p9.html

还有更多ini指令用于控制错误日志中的输出。这些内容在本PHP手册页中有说明。

默认情况下,PHP运行时不加载ini,只设置了error_log并启用了日志记录,它只输出一行。你也可以在你的系统上测试它,它很好地为命令行界面(CLI)";服务器应用程序编程接口(API)[SPI]":

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

使用此命令进行独立运行,并将其与输出进行比较。如果它也有两个行尾,那么这可能是php版本的一个错误。

如果PHP版本没有问题[而不是原始发布(OP)中的情况],那么在您的应用程序中,一些设置看起来会被更改。你需要弄清楚是哪种设置。您可能可以通过注册自己的错误处理程序,然后转储ini设置来找到它。

最后但同样重要的是,如果这不是对行结尾的误解(请参阅我的评论),那么人们可能还想查看名为error_prepend_stringerror_append_string的ini设置中关于错误显示的信息(但而不是错误日志)。