adriandmitroca/laravel-exception-monitor

该包已被 废弃,且不再维护。未建议替代包。

一个小巧的Laravel包,用于通知您应用中发生的异常。

1.0.0 2016-03-27 13:22 UTC

This package is not auto-updated.

Last update: 2020-08-21 20:03:39 UTC


README

Latest Version on Packagist Software License Build Status SensioLabsInsight Quality Score Total Downloads

此包在您的生产应用中发生异常时通知您。它类似于为小型项目提供的轻量级和免费版本的Bugsnag,对于这些项目来说,使用这款出色的SaaS工具可能会有些过度。

Slack Preview

安装

composer require adriandmitroca/laravel-exception-monitor

接下来,您需要在 config/app.php 中注册 Service Provider

$providers = [
    ...
    Adriandmitroca\LaravelExceptionMonitor\ExceptionMonitorServiceProvider::class,
    ...
];

然后发布配置文件

php artisan vendor:publish --provider="Adriandmitroca\LaravelExceptionMonitor\ExceptionMonitorServiceProvider"

您还需要确保已正确安装并配置了 maknz/slack 包,以便进行Slack通知。

配置

配置文件相当直观。

<?php

return [
    /*
     |--------------------------------------------------------------------------
     | Enabled sender drivers
     |--------------------------------------------------------------------------
     |
     | Send a notification about exception in your application to supported channels.
     |
     | Supported: "mail", "slack". You can use multiple drivers.
     |
     */
    'drivers'      => [ 'mail', 'slack' ],

    /*
     |--------------------------------------------------------------------------
     | Enabled application environments
     |--------------------------------------------------------------------------
     |
     | Set environments that should generate notifications.
     |
     */
    'environments' => [ 'production' ],

    /*
     |--------------------------------------------------------------------------
     | Mail Configuration
     |--------------------------------------------------------------------------
     |
     | It uses your app default Mail driver. You shouldn't probably touch the view
     | property unless you know what you're doing.
     |
     */
    'mail'         => [
        'from' => 'sender@example.com',
        'to'   => 'recipient@example.com',
        'view' => 'mails/exception-monitor'
    ],

    /*
     * Uses maknz\slack package.
     */
    'slack'        => [
        'channel'  => '#bugtracker',
        'username' => 'Exception Monitor',
        'icon'     => ':robot_face:',
    ],
];

用法

要开始捕获异常,您有两种选择。

第一种方法:从包提供的异常处理器扩展(app/Exceptions/Handler.php

use Adriandmitroca\LaravelExceptionMonitor\MonitorExceptionHandler;
...
class Handler extends MonitorExceptionHandler

第二种方法:将 app/Exceptions/Handler.php 中的 report 方法修改如下

public function report(Exception $e)
{
    foreach ($this->dontReport as $type) {
        if ($e instanceof $type) {
            return parent::report($e);
        }
    }

    if (app()->bound('exception-monitor')) {
        app('exception-monitor')->notifyException($e);
    }

    parent::report($e);
}

变更日志

请参阅 CHANGELOG 获取更多信息。

测试

composer test

贡献

请参阅 CONTRIBUTING 获取更多详细信息。

许可

此库受MIT许可协议的许可。请参阅 许可文件 获取更多信息。