![](/img/trans.png)
[英]How do I display function arguments with PHP and the Whoops PrettyPageHandler error handler?
[英]Save the result of Whoops PrettyPageHandler
我在dev上使用Whoops錯誤庫(並且喜歡它)來顯示PrettyPageHandler,如下所示:
if (ENVIRONMENT == 'local') {
$whoops = new \Whoops\Run;
$whoops->pushHandler(new \Whoops\Handler\PrettyPageHandler);
$whoops->register();
}
對於直播我正在使用CallbackHandler向最終用戶顯示“用戶友好”錯誤消息。
無論如何將PrettyPageHandler的結果/輸出保存到數據庫甚至文件系統中? 我的想法是向最終用戶顯示友好的錯誤頁面,但同時使用PrettyPageHandler記錄錯誤以回顧並調試用戶得到的錯誤。
如文檔中所述:
$run->pushHandler(function($exception, $inspector, $run) {
var_dump($exception->getMessage());
return Handler::DONE;
});
替換var_dump($exception->getMessage());
使用您的自定義代碼保存到數據庫或文件日志。
https://github.com/filp/whoops/blob/master/docs/API%20Documentation.md#core-handlers-1
EDIT1:
要使用PrettyPageHandler保存日志,請創建一個從PrettyPageHandler擴展的自定義處理程序,並在句柄返回格式化響應的位置,然后將響應返回給用戶,以所需格式保存在數據庫或文件系統中。
你可以這樣做:
<?php
class PrettyErrorLogger extends \Whoops\Handler\PrettyPageHandler
{
public function handle()
{
parent::handle();
$output = ob_get_clean();
file_put_contents('error.log', $output); // or replace with DB insert
}
}
然后用它作為處理程序
$whoops->pushHandler(new PrettyErrorLogger);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.