簡體   English   中英

保存Whoops PrettyPageHandler的結果

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM