2013-06-26 19 views
10

我使用WAMP,並在我的php.ini文件我有:PHP錯誤日誌有額外的回車?

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 

這是什麼原因造成的?

UPDATE

我改變 「error_append_string」 和 「error_prepend_string」 到 「」。我還檢查和行之後的條目是:

[LINE]CR 
CRLF 
[LINE]CR 
etc 

即回車和換行的符號......

+1

你有php.ini中的error_append_string:www.php.net/manual/en/errorfunc.configuration.php?如果是的話,它有什麼價值? – user4035

+0

你用什麼工具打開文件?你可以使用十六進制編輯器來查看行尾字符是什麼? –

+0

我用更多的信息更新了這個問題。 – coderama

回答

3

這可能是與系統日誌搞亂你向上。所以PHP增加了CR,然後當處理log "line\n"請求時,Windows的系統日誌進入並放入一個額外的CRLF

看到這些相關的問題,即用戶有其他問題,新的生產線在其它操作系統下& 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

您可能希望在您的.ini文件檢查

error_prepend_string 

error_append_string 

值。

+0

我將它們都設置爲「」(空白),它仍然在發生。 – coderama

2

不要設置error_prepend_stringerror_append_string,而是完全地禁用它們,通過註釋它們(;):

;error_prepend_string 

;error_append_string 
+0

他們以前被禁用,U仍然有回車。 – coderama