我使用WAMP,在我的php.ini文件中我有:
error_log = "d:/php_error.log"
Run Code Online (Sandbox Code Playgroud)
当我打开该文件时,我看到:
[26-Jun-2013 05:35:57 UTC] PHP Warning: Division by zero in D:\....
[26-Jun-2013 05:35:57 UTC] PHP Stack trace:
[26-Jun-2013 05:35:57 UTC] PHP 1. {main}() D:\....
[26-Jun-2013 05:35:57 UTC] PHP 2. Zend_Application->run()...
etc
Run Code Online (Sandbox Code Playgroud)
问题是有额外的回车.即我希望宁愿这样:
[26-Jun-2013 05:35:57 UTC] PHP Warning: Division by zero in D:\....
[26-Jun-2013 05:35:57 UTC] PHP Stack trace:
[26-Jun-2013 05:35:57 UTC] PHP 1. {main}() D:\....
[26-Jun-2013 05:35:57 UTC] PHP 2. Zend_Application->run()...
etc
Run Code Online (Sandbox Code Playgroud)
可能是什么导致了这个?
UPDATE
我将"error_append_string"和"error_prepend_string"更改为"".我也检查了一行后的条目是:
[LINE]CR
CRLF
[LINE]CR
etc
Run Code Online (Sandbox Code Playgroud)
即Carriage Return和LineFeed符号......
这可能与系统日志弄乱你有关。所以PHP添加了CR,然后Windows的syslog进入并CRLF在处理请求时在其中添加了额外的内容log "line\n"。
请参阅这些相关问题,其中用户在其他操作系统下遇到新行和错误日志的其他问题:
PHP error_log 在 Mac OSX 上将换行符输出为文字“\n”字符串
特别是,当 Apache 运行的用户没有写入文件的权限,或者error_logphp.ini 中的指令未设置(或定义为syslog)时,可能会发生这种情况。更多详细信息请参见:http://www.php.net/manual/en/errorfunc.configuration.php#ini.error-log
至于日志文件本身,您可以尝试通过授予它 777 权限来尝试它,或者自己创建该文件而不是让系统创建它(反之亦然)。一些用户报告了每个调整的不同问题/解决方案。