請問一下php能不能像java那樣列印錯誤堆棧資訊到錯誤記錄檔?

來源:互聯網
上載者:User
同題,如果可以大概操作步驟是什嗎?或者有什麼相關資料?謝謝。

回複內容:

同題,如果可以大概操作步驟是什嗎?或者有什麼相關資料?謝謝。

之前的回答有問題,清除了。

就像樓下說的,PHP 確實不會輸出錯誤堆棧,但通過函數,還是能夠擷取到錯誤堆棧的。

function getBacktrace() {  ob_start();  debug_print_backtrace();  return ob_get_clean();}

調用上面這個函數取得錯誤堆棧,再用 file_put_contents('log_path', FILE_APPEND); 寫入記錄檔即可。

還有一個辦法:為 PHP 安裝 xdebug 擴充
windows 下的安裝方法:http://www.cnblogs.com/qiantuwuliang/archive/2011/01/23/1942382.html
安裝好後,修改 php.ini

log_errors = Onerror_log = "F://path/php_error.log"

開啟PHP的本身的日誌記錄,只會記錄PHP本身出錯時的日誌,如各種語法錯誤,警告之類的。@rjbj 想要的應該是在業務中打日誌以及出錯了迅速找到出錯的地方在架構中所處的位置。如果你不用架構的話,要實現這樣的功能,就要自已結合PHP的異常處理和日誌類庫來實現,用架構的話幾乎所有的全堆棧架構都會支援的。

你可以看下 debug-backtrace 和 debug-print-backtrace.php 兩個函數:http://www.php.net/manual/en/function.debug-backtrace.phphttp://www.php.net/manual/en/function.debug-print-backtrace.php

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.