11

我使用 WAMP,在我的 php.ini 文件中我有:

error_log = "d:/php_error.log"

当我打开该文件时,我看到:

[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

问题是有额外的回车。即我希望有这个:

[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

这可能是什么原因造成的?

更新

我将“error_append_string”和“error_prepend_string”更改为“”。我还检查了一行后的条目是:

 [LINE]CR
 CRLF
 [LINE]CR
 etc

即回车和换行符号...

4

3 回答 3

3

这可能与 syslog 搞砸了你有关。所以 PHP 添加CR, 然后 Windows 的 syslog 进入并CRLF在处理log "line\n"请求时在其中添加一个额外的内容。

请参阅这些相关问题,其中用户在其他操作系统下遇到新行和 error_log 的其他问题:

PHP error_log 在 Mac OSX 上将换行符输出为文字“\n”字符串

PHP 错误日志和换行符

特别是,当运行 Apache 的用户没有写入文件的权限,或者error_logphp.ini 中的指令未设置(或定义为syslog)时,可能会发生这种情况。更多细节在这里:http ://www.php.net/manual/en/errorfunc.configuration.php#ini.error-log

至于日志文件本身,您可以尝试通过授予它 777 权限来尝试它,或者自己创建文件而不是让系统创建它(反之亦然)。一些用户报告了每个调整的不同问题/解决方案。

于 2013-07-05T03:08:59.960 回答
2

Don't set error_prepend_string and error_append_string, but rather disable them completly, by commenting them(;):

;error_prepend_string 

and

;error_append_string
于 2013-06-28T08:45:04.490 回答
1

您可能需要检查的值

error_prepend_string 

error_append_string

在您的 .ini 文件上。

于 2013-06-26T05:45:36.070 回答