laravel-slack-errors-watch maintained by mhamed
Laravel Slack Errors Watch
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