famdirksen/laravel-exception-monitor

一个轻量级Laravel包,用于通知您应用中的异常。

1.0.1 2017-05-22 13:52 UTC

This package is auto-updated.

Last update: 2024-09-05 21:06:25 UTC


README

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

Slack Preview

安装

composer require famdirksen/laravel-exception-monitor

接下来,您需要在 config/app.php 中注册服务提供者

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

然后发布配置文件

php artisan vendor:publish --provider="Famdirksen\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 Famdirksen\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);
}

更新日志

有关更多信息,请参阅 更新日志

测试

composer test

贡献

有关详细信息,请参阅 贡献指南

许可

此库采用MIT许可。请参阅 许可文件 以获取更多信息。