PHP错误日志有额外的回车?

时间:2013-06-26 05:38:28

标签: php

我使用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

即。回车符和LineFeed符号......

3 个答案:

答案 0 :(得分:3)

这可能与系统日志搞乱有关。所以PHP添加CR,然后Windows'syslog进入,并在处理CRLF请求时添加额外的log "line\n"

请参阅这些相关问题,其中用户在使用新线路时遇到其他问题。其他操作系统下的error_log:

PHP error_log outputting line breaks as literal "\n" strings on Mac OSX

PHP error log and newline chars

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

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

答案 1 :(得分:2)

不要设置error_prepend_stringerror_append_string,而是通过注释(;)来完全禁用它们:

;error_prepend_string 

;error_append_string

答案 2 :(得分:1)

您可能需要检查

的值
error_prepend_string 

error_append_string
<。>在你的.ini文件上。