Skip to content

Monitor exception and report it to notification channels(Dump、Log、Mail、AnPush、Bark、Chanify、DingTalk、Discord、Gitter、GoogleChat、IGot、Lark、Mattermost、MicrosoftTeams、NowPush、Ntfy、Push、Pushback、PushBullet、PushDeer、Pushover、PushPlus、QQ、RocketChat、ServerChan、ShowdocPush、SimplePush、Slack、Telegram、WeWork、WPush、XiZhi、YiFengChuanHua、Zulip).

License

guanguans/laravel-exception-notify

Repository files navigation

laravel-exception-notify

Monitor exception and report it to notification channels(Dump、Log、Mail、AnPush、Bark、Chanify、DingTalk、Discord、Gitter、GoogleChat、IGot、Lark、Mattermost、MicrosoftTeams、NowPush、Ntfy、Push、Pushback、PushBullet、PushDeer、Pushover、PushPlus、QQ、RocketChat、ServerChan、ShowdocPush、SimplePush、Slack、Telegram、WeWork、WPush、XiZhi、YiFengChuanHua、Zulip).

tests check & fix styling codecov Latest Stable Version GitHub release (with filter) Total Downloads License

Features

  • Monitor exception and report it to notification channels
  • Support for extending customized channels
  • Support for notification rate limiting
  • Support for customized data pipe
  • Support for customized data collector

Related Links

Requirement

  • PHP >= 7.4

Installation

composer require guanguans/laravel-exception-notify --ansi -v

Configuration

Publish files(optional)

php artisan vendor:publish --provider="Guanguans\\LaravelExceptionNotify\\ExceptionNotifyServiceProvider" --ansi -v

Apply for channel authentication and other information

  • Notify
  • Dump(For debugging exception messages)
  • Log(For debugging exception messages)
  • Mail

Configure channels in the config/exception-notify.php and .env file

# EXCEPTION_NOTIFY_DEFAULTS=dingTalk,lark,mail,slack,telegram,...
EXCEPTION_NOTIFY_DEFAULTS=log,slack,weWork
EXCEPTION_NOTIFY_SLACK_WEBHOOK=https://hooks.slack.com/services/TPU9A9/B038KNUC0GY/6pKH3vfa3mjlUPcgLSjzR
EXCEPTION_NOTIFY_WEWORK_TOKEN=73a3d5a3-ceff-4da8-bcf3-ff5891778

Usage

Test for exception notify

php artisan exception-notify:test --ansi -v

Notification examples

discord lark mail
discord lark mail

Skip report

Modify the boot method in the app/Providers/AppServiceProvider.php file

<?php

use Guanguans\LaravelExceptionNotify\Facades\ExceptionNotify;
use Illuminate\Support\Arr;

public function boot(): void
{
    ExceptionNotify::skipWhen(static function (\Throwable $throwable) {
        if (app()->environment(['local', 'testing'])) {
            return true;
        }

        return Arr::first(
            [
                Symfony\Component\HttpKernel\Exception\HttpException::class,
                Illuminate\Http\Exceptions\HttpResponseException::class,
            ],
            static fn (string $type): bool => $throwable instanceof $type
        );
    });
}

Custom channel

Modify the boot method in the app/Providers/AppServiceProvider.php file

<?php

use Guanguans\LaravelExceptionNotify\Contracts\Channel;
use Guanguans\LaravelExceptionNotify\Facades\ExceptionNotify;
use Illuminate\Container\Container;

public function boot(): void
{
    ExceptionNotify::extend('YourChannelName', function (Container $container): Channel {
        return 'Instance of the `\Guanguans\LaravelExceptionNotify\Contracts\Channel`.';
    });
}

Testing

composer test

Changelog

Please see CHANGELOG for more information on what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Security Vulnerabilities

Please review our security policy on how to report security vulnerabilities.

Credits

Thanks

License

The MIT License (MIT). Please see License File for more information.

About

Monitor exception and report it to notification channels(Dump、Log、Mail、AnPush、Bark、Chanify、DingTalk、Discord、Gitter、GoogleChat、IGot、Lark、Mattermost、MicrosoftTeams、NowPush、Ntfy、Push、Pushback、PushBullet、PushDeer、Pushover、PushPlus、QQ、RocketChat、ServerChan、ShowdocPush、SimplePush、Slack、Telegram、WeWork、WPush、XiZhi、YiFengChuanHua、Zulip).

Topics

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Packages

No packages published

Languages