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

v1.0.0 2026-02-13 17:54 UTC

This package is auto-updated.

Last update: 2026-02-13 18:08:29 UTC


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

  1. Go to https://api.slack.com/apps
  2. Click Create New AppFrom scratch
  3. Give it a name (e.g. "Exception Bot") and select your workspace
  4. In the left sidebar, click Incoming Webhooks
  5. Toggle Activate Incoming Webhooks to On
  6. Click Add New Webhook to Workspace
  7. Select the channel where you want error reports posted and click Allow
  8. 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