Agregar contexto personalizado a los errores reportados en Sentry no solo mejora la visibilidad y comprensión de los problemas, sino que también acelera significativamente el proceso de resolución. Al aprovechar estas técnicas, podemos crear aplicaciones más robustas y ofrecer una mejor experiencia a nuestros usuarios.
Espero que encuentren útiles estos consejos. Si tienen alguna pregunta o sugerencia, ¡no duden en dejar sus comentarios!
¡Feliz codificación!
¡Gracias por leer! Si te gustó este post, no olvides compartirlo con otros desarrolladores que puedan beneficiarse de estos consejos.
use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;
use Sentry\Laravel\Integration;
use Sentry\State\Scope;
use Throwable;
use function Sentry\configureScope;
class Handler extends ExceptionHandler
{
/**
* The list of the inputs that are never flashed to the session on validation exceptions.
*
* @var array<int, string>
*/
protected $dontFlash = [
'current_password',
'password',
'password_confirmation',
];
/**
* Register the exception handling callbacks for the application.
*/
public function register(): void
{
configureScope(function (Scope $scope): void {
if (auth()->check()) {
$scope->setUser([
'email' => auth()->user()->email,
'id' => auth()->id(),
'roles' => auth()->user()->roles->pluck('name')->toArray(),
]);
}
$scope->setContext('character', [
'name' => 'Mighty Fighter',
'age' => 19,
'attack_type' => 'melee'
]);
});
$this->reportable(function (Throwable $e) {
Integration::<em>captureUnhandledException</em>($e);
});
}