2015-09-21 37 views
1

如何配置Monolog以在響應內輸出PHP錯誤,就像在沒有Monolog的情況下完成的那樣?Monolog:處理器捕獲錯誤/異常並在響應中輸出消息(按照PHP默認值)

我想要做的是,例如,當PHP頁面中發生PHP E_ERROR時,該錯誤消息將輸出到響應中,並傳遞給爲Monolog設置的任何其他處理程序。我可能會使用StreamHandler並將其輸出到標準輸出,但不知道如何執行此操作,或者它是否能按預期工作?

有兩種變型我想的選項:

  1. 獨白重新格式錯誤消息具有它的響應
  2. 獨白內輸出之前中繼錯誤(或異常)回PHP本機錯誤處理,以便它在響應中輸出相同格式的消息,就好像Monolog不是調解它一樣

我怎麼能實現這些?我甚至不知道如何讓Monolog將自己註冊爲異常和錯誤的處理程序。我是否需要編寫自己的函數傳遞給register_error_handler()register_exception_handler()register_shutdown_function()

回答

4

短版:

use Monolog\ErrorHandler; 
$logger = new Logger('Logger Name'); 

ErrorHandler::register($logger); 

更長,更可定製的版本:

use Monolog\ErrorHandler; 

$logger = new Logger('Logger Name'); 

$handler = new ErrorHandler($logger); 
$handler->registerErrorHandler([], false); 
$handler->registerExceptionHandler(); 
$handler->registerFatalHandler(); 
+0

已經實現了你的解決方案,但香港專業教育學院碰到一些問題,請您及時看我的問題的http:// stackoverflow.com/questions/43665088/set-minimum-php-error-reporting-in-monolog-errorhandler –

相關問題