holidaypirates/bugsnag-lumen

Bugsnag 通知器,适用于 Lumen 应用程序。

2.0.0 2016-07-20 09:56 UTC

This package is auto-updated.

Last update: 2024-09-19 22:19:50 UTC


README

Lumen Bugsnag 通知器可让您立即了解 Lumen PHP 应用程序中的错误和异常。(基于 Laravel 的包 https://github.com/holidaypirates/bugsnag-lumen

Bugsnag 实时捕获您的 Web、移动和桌面应用程序中的错误,帮助您尽快了解并解决它们。 创建免费账户 开始捕获应用程序中的错误。

安装方法

  1. 安装 holidaypirates/bugsnag-lumen

    $ composer require "holidaypirates/bugsnag-lumen:1.*"
  2. 更新 bootstrap/app.php 以激活 Bugsnag

    # Copy config/bugsnag.php from package to project config, change vaules and register config file in `bootstrap/app.php`
    $app->configure('bugsnag');
    # Add `BugsnagLumenServiceProvider` to the `bootstrap/app.php`
    $app->register('HolidayPirates\BugsnagLumen\BugsnagLumenServiceProvider')
  3. App/Exceptions/Handler.php 使用 Bugsnag 异常处理程序。

    # DELETE this line
    use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;
    # ADD this line instead
    use HolidayPirates\BugsnagLumen\BugsnagExceptionHandler as ExceptionHandler

    此更改后,您的文件应如下所示

    <?php namespace App\Exceptions;
    
    use Exception;
    use HolidayPirates\BugsnagLumen\BugsnagExceptionHandler as ExceptionHandler;
    
    class Handler extends ExceptionHandler {
        ...
    }

配置

  1. 创建一个包含您的 API 密钥的文件 config/bugsnag.php

  2. 配置您的 api_key

    <?php # config/bugsnag.php
    
    return array(
        'api_key' => 'YOUR-API-KEY-HERE'
    );
  3. 可选地,您可以将 notify_release_stages 键添加到上述文件中,以定义哪些 Laravel 环境将向 Bugsnag 发送异常。

    return array(
        'api_key' => 'YOUR-API-KEY-HERE',
        'notify_release_stages' => ['production', 'staging']
    );

使用异常发送自定义数据

通常,发送有关您的应用程序的附加元数据(例如,有关当前登录用户的任何错误或异常),有助于调试问题。

要发送自定义数据,您应定义一个 before-notify 函数,将包含自定义数据的 "tabs" 数组添加到 $metaData 参数中。例如

app('bugsnag')->setBeforeNotifyFunction("before_bugsnag_notify");

function before_bugsnag_notify($error) {
    // Do any custom error handling here

    // Also add some meta data to each error
    $error->setMetaData(array(
        "user" => array(
            "name" => "James",
            "email" => "james@example.com"
        )
    ));
}

有关更多信息,请参阅 bugsnag-php 库的 setBeforeNotifyFunction 文档。

发送自定义错误或非致命异常

您可以通过调用 app('bugsnag')->notifyException 来轻松地让 Bugsnag 了解非致命或捕获的异常。

app('bugsnag')->notifyException(new Exception("Something bad happened"));

您还可以使用 Bugsnag::notifyError 向 Bugsnag 发送自定义错误。

app('bugsnag')->notifyError("ErrorType", "Something bad happened here too");

这两个函数都可以传递一个可选的 $metaData 参数,该参数应采用以下格式

$metaData =  array(
    "user" => array(
        "name" => "James",
        "email" => "james@example.com"
    )
);

错误报告级别

默认情况下,我们将使用您的 php.inierror_reporting 的值或您使用 error_reporting(...) 函数在运行时设置的任何值。

如果您想向 Bugsnag 发送不同级别的错误,可以调用 setErrorReportingLevel,例如

app('bugsnag')->setErrorReportingLevel(E_ALL & ~E_NOTICE);

附加配置

Bugsnag PHP 客户端 作为 Bugsnag 提供,允许您设置各种配置选项,例如

app('bugsnag')->setReleaseStage("production");

有关完整配置详情,请参阅 Bugsnag Notifier for PHP 文档

报告错误或功能请求

请在此项目的 GitHub issues 页面上报告任何错误或功能请求

https://github.com/holidaypirates/bugsnag-lumen/issues