我使用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符号......
答案 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_string
和error_append_string
,而是通过注释(;)来完全禁用它们:
;error_prepend_string
和
;error_append_string
答案 2 :(得分:1)
您可能需要检查
的值error_prepend_string
和
error_append_string
<。>在你的.ini文件上。