保存 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 向最终用户显示 "user friendly" 错误消息。
有没有办法将 PrettyPageHandler 的 result/output 保存到数据库甚至文件系统中?我的想法是向最终用户显示友好的错误页面,但同时使用 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
编辑 1:
要使用 PrettyPageHandler 保存日志,创建一个从 PrettyPageHandler 扩展的自定义处理程序,并在 return 处理 return 对用户的响应之前的格式化响应的地方,保存以所需格式在数据库或文件系统中。
你可以这样做:
<?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);
我在 dev 上使用 Whoops 错误库(并且喜欢它)来显示 PrettyPageHandler,如下所示:
if (ENVIRONMENT == 'local') {
$whoops = new \Whoops\Run;
$whoops->pushHandler(new \Whoops\Handler\PrettyPageHandler);
$whoops->register();
}
对于直播,我使用 CallbackHandler 向最终用户显示 "user friendly" 错误消息。
有没有办法将 PrettyPageHandler 的 result/output 保存到数据库甚至文件系统中?我的想法是向最终用户显示友好的错误页面,但同时使用 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
编辑 1:
要使用 PrettyPageHandler 保存日志,创建一个从 PrettyPageHandler 扩展的自定义处理程序,并在 return 处理 return 对用户的响应之前的格式化响应的地方,保存以所需格式在数据库或文件系统中。
你可以这样做:
<?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);