支援多種通道的 laravel 異常監控通知元件

語言: CN / TW / HK

usage.png

laravel-exception-notify - 支援多種通道的 laravel 異常通知(Bark、Chanify、釘釘群機器人、飛書群機器人、郵件、Server 醬、企業微信群機器人、息知)。

功能(2.x重構版本)

  • 監控傳送 laravel 應用異常
  • 支援多種通道(Bark、Chanify、釘釘群機器人、飛書群機器人、郵件、Server 醬、企業微信群機器人、息知)
  • 支援擴充套件自定義通道
  • 支援自定義資料收集器
  • 支援自定義資料轉換器

安裝

bash $ composer require guanguans/laravel-exception-notify:^2.0 -v

配置

註冊服務

laravel

bash $ php artisan vendor:publish --provider="Guanguans\\LaravelExceptionNotify\\ExceptionNotifyServiceProvider"

lumen

將以下程式碼段新增到 bootstrap/app.php 檔案中的 Register Service Providers 部分下:

php $app->register(\Guanguans\LaravelExceptionNotify\ExceptionNotifyServiceProvider::class); $app->boot(\Guanguans\LaravelExceptionNotify\ExceptionNotifyServiceProvider::class);

申請相關通道 token 等資訊

配置檔案中配置 token 等資訊

config/exception-notify.php

.env 檔案中配置

dotenv EXCEPTION_NOTIFY_DEFAULT_CHANNEL=dingTalk EXCEPTION_NOTIFY_DINGTALK_KEYWORD=keyword EXCEPTION_NOTIFY_DINGTALK_TOKEN=c44fec1ddaa8a833156efb77b7865d62ae13775418030d94d EXCEPTION_NOTIFY_DINGTALK_SECRET=SECc32bb7345c0f73da2b9786f0f7dd5083bd768a29b82

使用

app/Exceptions/Handler.phpreport 方法中新增

```php public function report(Exception $e) { // 預設通道 \ExceptionNotifier::reportIf($this->shouldReport($e), $e); // 指定通道 \ExceptionNotifier::onChannel('dingTalk', 'mail')->reportIf($this->shouldReport($e), $e);

parent::report($e);

} ```

通知結果

xiZhi.jpg

擴充套件自定義通道

app/Providers/AppServiceProvider.phpboot 方法中新增

php public function boot() { // 擴充套件自定義通道 \ExceptionNotifier::extend('YourChannel', function (\Illuminate\Contracts\Container\Container $container){ // 返回 \Guanguans\LaravelExceptionNotify\Contracts\Channel 的例項 }); }