meita / debuger
Laravel package that hides technical error details from end users and emails full reports.
Installs: 12
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
pkg:composer/meita/debuger
Requires
- php: >=8.0
- illuminate/contracts: ^8.0|^9.0|^10.0|^11.0
- illuminate/mail: ^8.0|^9.0|^10.0|^11.0
- illuminate/support: ^8.0|^9.0|^10.0|^11.0
- laravel/framework: ^8.0|^9.0|^10.0|^11.0
README
Laravel package that replaces the default exception handling flow with a friendly error page for end users while emailing the full stack trace and request context to you.
Installation
- Require the package:
composer require meita/debuger
- (Optional) Publish the config and views:
php artisan vendor:publish --tag=debuger-config php artisan vendor:publish --tag=debuger-views
The service provider is auto-discovered. No manual registration is needed.
Configuration
Set your desired values in config/debuger.php or via environment variables:
DEBUGER_ENABLED(defaulttrue) – turn the package on or off.DEBUGER_USER_MESSAGE– text shown to users instead of the real error.DEBUGER_MAIL_TO– recipient(s) for exception reports (required to send emails). Supports a single address or a comma/semicolon separated list.DEBUGER_MAIL_SUBJECT– subject prefix for exception emails.DEBUGER_MAIL_FROM– optional from address for outgoing reports.DEBUGER_MAIL_IN_CONSOLE(defaulttrue) – send emails for exceptions thrown from CLI (queue workers, scheduler, artisan, ...).DEBUGER_REFERENCE_PREFIX– prefix for the generated reference id.
Note: the config also supports the common DEBUGGER_* env var spelling as a fallback.
Behavior
- For 5xx errors, users see a clean HTML page (or a minimal JSON payload for API requests) with no technical details, plus an incident reference.
- A detailed email is sent for reportable 5xx exceptions containing the message, location, stack trace, and request context (headers and sanitized input fields).
- Exceptions below 500 (e.g., 404/422) fall back to Laravel's normal handling.
- The package replaces Laravel's exception handler binding; set
DEBUGER_ENABLED=falseto revert to the default behavior without uninstalling.
Notes
- Input fields listed in
hidden_fieldsare stripped from the email to avoid leaking secrets. - Email failures are logged but will not break the response to the user.