支持多种通道的 laravel 异常监控通知组件

usage.png

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.phpreport 方法中添加

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 方法中添加

public function boot()
{
    // 扩展自定义通道
    \ExceptionNotifier::extend('YourChannel', function (\Illuminate\Contracts\Container\Container $container){
        // 返回 \Guanguans\LaravelExceptionNotify\Contracts\Channel 的实例          
    });
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Laravel 中,异常处理是非常重要的。Laravel 提供了一种方便的方式来捕获、处理和创建异常。 首先,让我们来看一下如何捕获异常Laravel 中的异常处理器是通过 Exception 类来实现的。当 Laravel 应用程序中的异常被抛出时,这些异常将被传递给 Exception 类。我们可以通过在应用程序中注册异常处理器来处理这些异常。这可以通过在 app/Exceptions/Handler.php 文件中编写代码来完成。 下面是一个例子: ```php <?php namespace App\Exceptions; use Exception; use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler; class Handler extends ExceptionHandler { public function render($request, Exception $exception) { if ($exception instanceof CustomException) { return response()->view('errors.custom', [], 500); } return parent::render($request, $exception); } } ``` 在这个例子中,我们重写了 render 方法,并检查抛出的异常是否是 CustomException 类型。如果是,我们将返回一个自定义的错误视图,否则返回默认的错误视图。 接下来,让我们来看一下如何处理异常。在 Laravel 中,我们可以通过 try-catch 语句来处理异常。例如: ```php try { // Some code } catch (Exception $e) { // Handle exception } ``` 在这个例子中,我们将一些代码包装在 try 块中。如果在 try 块中抛出了异常,它将被捕获并传递给 catch 块。在 catch 块中,我们可以编写代码来处理异常。 最后,让我们看一下如何创建异常。在 Laravel 中,我们可以通过继承 Exception 类来创建自定义异常。例如: ```php <?php namespace App\Exceptions; use Exception; class CustomException extends Exception { public function __construct($message = "", $code = 0, Throwable $previous = null) { parent::__construct($message, $code, $previous); } } ``` 在这个例子中,我们创建了一个 CustomException 类,它继承自 Exception 类。我们还为该类定义了一个构造函数,它接受消息、代码和前一个异常作为参数。 总之,Laravel 中的异常处理非常重要。通过捕获、处理和创建异常,我们可以更好地管理我们的应用程序并提供更好的用户体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值