laravel-exception-notify - 支援多種通道的 laravel 異常通知(Bark、Chanify、釘釘群機器人、飛書群機器人、郵件、Server 醬、企業微信群機器人、息知)。
功能(2.x重構版本)
- 監控傳送 laravel 應用異常
- 支援多種通道(Bark、Chanify、釘釘群機器人、飛書群機器人、郵件、Server 醬、企業微信群機器人、息知)
- 支援擴充套件自定義通道
- 支援自定義資料收集器
- 支援自定義資料轉換器
安裝
$ composer require guanguans/laravel-exception-notify:^2.0 -v
配置
註冊服務
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 的例項
});
}