Light weight PHP exception monitoring for Laravel.
davidcolquhoun/monitor-exceptions-laravel is a Laravel package for light weight php exception monitoring for laravel..
It currently has 0 GitHub stars and 332 downloads on Packagist (latest version v1.0.3).
Install it with composer require davidcolquhoun/monitor-exceptions-laravel.
Discover more Laravel packages by davidcolquhoun
or browse all Laravel packages to compare alternatives.
Last updated
Lightweight Laravel client for reporting exceptions to the DataSmugglers monitoring API. Events appear in a dashboard where you can filter, search, and inspect them.
composer require davidcolquhoun/monitor-exceptions-laravel
The package registers its service provider automatically. It merges default config from config/monitor-exceptions.php; you can override values in your app by publishing the config or setting env vars.
Set these in your .env:
MONITOR_EXCEPTIONS_ENVIRONMENT_ID=myapp-prod
MONITOR_EXCEPTIONS_ENVIRONMENT_KEY=your-secret-key
myapp-dev, myapp-prod) for grouping in the DataSmugglers UI.If either is missing or empty, the client does not register and no exceptions are sent.
To publish the config file and edit it in your project:
php artisan vendor:publish --tag=monitor-exceptions-config
That creates config/monitor-exceptions.php, which reads from the same env vars by default.
In your Laravel app, register the client in the exception handler. In bootstrap/app.php:
use Illuminate\Foundation\Configuration\Exceptions;
use Monitor\Exceptions\MonitorExceptionsClient;
return Application::configure(basePath: dirname(__DIR__))
// ... routing, middleware, etc.
->withExceptions(function (Exceptions $exceptions) {
MonitorExceptionsClient::register($exceptions);
})
->create();
Once registered, every exception reported to Laravel (e.g. via report($e)) is also sent to the monitoring API.
The client does not send request bodies, client IP, or query strings. It sends a JSON payload with:
| Field | Type | Description |
|---------------------|-------------|-------------|
| environmentId | string | Your environment identifier. |
| environmentKey | string | Your environment key. |
| reportedByHandler | string | Always laravel. |
| errorSeverity | int | null | PHP error level when available (e.g. ErrorException). |
| exceptionClass | string | Exception class name. |
| errorMessage | string | Exception message. |
| errorCode | string | null | Exception code when set. |
| errorFile | string | File where the exception was thrown. |
| errorLine | int | Line number. |
| stackTrace | string | Stack trace as a string. |
| requestUrl | string | null | Request URL without query string (null in CLI). |
| requestMethod | string | null | HTTP method (null in CLI). |
| requestHeaders | array | Request headers with sensitive ones stripped (empty in CLI). |
Sensitive headers (e.g. authorization, cookie, x-api-key) are removed before sending.
environment_id or environment_key is empty, register() does nothing and no handler is attached.requestUrl, requestMethod, and requestHeaders are null/empty.After configuring env vars, trigger an exception (e.g. throw new \RuntimeException('Test');) and check the DataSmugglers dashboard for the event.