mhamed / laravel-slack-errors-watch
Automatic Slack error reporting for Laravel applications
Installs: 384
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
pkg:composer/mhamed/laravel-slack-errors-watch
Requires
- php: ^8.1
- illuminate/log: ^10.0|^11.0|^12.0
- illuminate/support: ^10.0|^11.0|^12.0
README
Automatic Slack error reporting for Laravel applications. Get instant Slack notifications for every unhandled exception — zero manual setup required.
Installation
composer require mhamed/laravel-slack-errors-watch
Laravel will auto-discover the package. No need to register any service provider manually.
Configuration
1. Create a Slack Webhook URL
- Go to https://api.slack.com/apps
- Click Create New App → From scratch
- Give it a name (e.g. "Exception Bot") and select your workspace
- In the left sidebar, click Incoming Webhooks
- Toggle Activate Incoming Webhooks to On
- Click Add New Webhook to Workspace
- Select the channel where you want error reports posted and click Allow
- Copy the Webhook URL (it looks like
https://hooks.slack.com/services/T.../B.../xxxx)
2. Add the Webhook URL to .env
LOG_SLACK_WEBHOOK_URL=https://hooks.slack.com/services/T.../B.../xxxx
That's it. The package will automatically report all unhandled exceptions to your Slack channel.
Optional Configuration
Publish the config file to customize behavior:
php artisan vendor:publish --tag=slack-errors-watch-config
This creates config/slack-errors-watch.php with the following options:
| Option | Default | Description |
|---|---|---|
enable_production |
true |
Send reports in production |
enable_local |
false |
Send reports in local environment |
auto_report_exceptions |
true |
Auto-register in exception handler |
ignore |
[] |
Exception classes to skip (see below) |
log_channel |
'slack' |
Logging channel name |
slack_channel_config |
(see below) | Default Slack channel config |
Ignoring Exceptions
Add exception classes to the ignore array to prevent them from being reported to Slack. It uses instanceof, so ignoring a parent class also ignores all its subclasses.
'ignore' => [ \Symfony\Component\HttpKernel\Exception\NotFoundHttpException::class, \Illuminate\Auth\AuthenticationException::class, \Illuminate\Database\Eloquent\ModelNotFoundException::class, \Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException::class, ],
Default Slack Channel Config
If your app doesn't already define a slack logging channel, the package creates one automatically using slack_channel_config:
'slack_channel_config' => [ 'driver' => 'slack', 'url' => env('LOG_SLACK_WEBHOOK_URL'), 'username' => 'Exception Bot', 'emoji' => ':boom:', 'level' => 'error', ],
Usage
Automatic (default)
With auto_report_exceptions enabled, every unhandled exception is reported to Slack automatically. No code changes needed.
Manual
use Mhamed\SlackErrorsWatch\Facades\SlackErrorsWatch; // Report an exception SlackErrorsWatch::logException($exception); // Send an info message SlackErrorsWatch::slackLogInfo('Deployment completed successfully');
License
MIT