laravel-exception-notify
laravel-exception-notify copied to clipboard
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、Pus...
laravel-exception-notify
简体中文 | ENGLISH
Laravel 中异常监控报警通知(Bark、Chanify、钉钉群机器人、Discord、飞书群机器人、邮件、PushDeer、QQ 频道机器人、Server 酱、Slack、Telegram、企业微信群机器人、息知)。
功能
- 监控发送 laravel 应用异常
- 支持多种通道(Bark、Chanify、钉钉群机器人、Discord、飞书群机器人、邮件、PushDeer、QQ 频道机器人、Server 酱、Slack、Telegram、企业微信群机器人、息知)
- 支持扩展自定义通道
- 支持自定义数据收集器
- 支持自定义数据转换器
- 支持通知速率限制(默认每分一次)
相关项目
环境要求
- laravel >= 5.5
安装
$ composer require guanguans/laravel-exception-notify -vvv
配置
注册服务
laravel
$ php artisan vendor:publish --provider="Guanguans\\LaravelExceptionNotify\\ExceptionNotifyServiceProvider"
lumen
将以下代码段添加到 bootstrap/app.php
文件中的 Register Service Providers
部分下:
$app->register(\Guanguans\LaravelExceptionNotify\ExceptionNotifyServiceProvider::class);
$app->boot(\Guanguans\LaravelExceptionNotify\ExceptionNotifyServiceProvider::class);
申请通道 token 等信息
配置文件中配置 token 等信息
config/exception-notify.php
.env
文件中配置
EXCEPTION_NOTIFY_DEFAULT_CHANNEL=dingTalk
EXCEPTION_NOTIFY_DINGTALK_KEYWORD=keyword
EXCEPTION_NOTIFY_DINGTALK_TOKEN=c44fec1ddaa8a833156efb77b7865d62ae13775418030d94d
EXCEPTION_NOTIFY_DINGTALK_SECRET=SECc32bb7345c0f73da2b9786f0f7dd5083bd768a29b82
使用
app/Exceptions/Handler.php
的 report
方法中添加
public function report(Exception $e)
{
// 默认通道
\ExceptionNotifier::reportIf($this->shouldReport($e), $e);
// 指定通道
\ExceptionNotifier::onChannel('dingTalk', 'mail')->reportIf($this->shouldReport($e), $e);
parent::report($e);
}
通知结果
扩展自定义通道
app/Providers/AppServiceProvider.php
的 boot
方法中添加
public function boot()
{
// 扩展自定义通道
\ExceptionNotifier::extend('YourChannel', function (\Illuminate\Contracts\Container\Container $container){
// 返回 \Guanguans\LaravelExceptionNotify\Contracts\Channel 的实例
});
}
测试
$ composer test
变更日志
请参阅 CHANGELOG 获取最近有关更改的更多信息。
贡献指南
请参阅 CONTRIBUTING 有关详细信息。
安全漏洞
请查看我们的安全政策了解如何报告安全漏洞。
贡献者
- guanguans
- 所有贡献者
鸣谢
协议
MIT 许可证(MIT)。有关更多信息,请参见协议文件。