Estoy usando la biblioteca de errores de Whoops (y me encanta) en el desarrollo para mostrar el PrettyPageHandler así:
if (ENVIRONMENT == 'local') { $whoops = new \Whoops\Run; $whoops->pushHandler(new \Whoops\Handler\PrettyPageHandler); $whoops->register(); }Para vivir, estoy usando CallbackHandler para mostrar al usuario final un mensaje de error "fácil de usar".
¿Hay alguna forma de guardar el resultado/salida de PrettyPageHandler en una base de datos o incluso en el sistema de archivos? Mi idea es mostrarle al usuario final la página de error amigable, pero registrar el error al mismo tiempo usando PrettyPageHandler para mirar hacia atrás y depurar el error que obtuvo el usuario.
Como se describe en la documentación:
$run->pushHandler(function($exception, $inspector, $run) { var_dump($exception->getMessage()); return Handler::DONE; }); reemplazar var_dump($exception->getMessage()); con su código personalizado para guardar en la base de datos o en el registro de archivos.
https://github.com/filp/whoops/blob/master/docs/API%20Documentation.md#core-handlers-1
Edit1:
Para usar PrettyPageHandler para guardar el registro, cree un controlador personalizado que se extienda desde PrettyPageHandler y, en el lugar donde el controlador devuelva la respuesta formateada antes de devolver la respuesta al usuario, guárdelo en la base de datos o en el sistema de archivos en el formato deseado.
Puedes hacer algo como esto:
<?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 } }luego úsalo como controlador
$whoops->pushHandler(new PrettyErrorLogger);