Laravel Lumen

了解如何在 Laravel Lumen 中使用 Sentry。

Laravel 使用原生包 sentry-laravel 进行支持。

本指南适用于 Laravel Lumen 5+。我们还提供了 最新版 Laravel 的说明以及 其他版本 的说明。

安装 sentry/sentry-laravel 包:

Copied
composer require sentry/sentry-laravel

bootstrap/app.php 中注册 Sentry:

bootstrap/app.php
Copied
$app->register('Sentry\Laravel\ServiceProvider');

// To enable Sentry Tracing, the `TracingServiceProvider` has to be registered additionally:
// $app->register('Sentry\Laravel\Tracing\ServiceProvider');

// Sentry must be registered before routes are included
require __DIR__ . '/../app/Http/routes.php';

app/Exceptions/Handler.php 中添加 Sentry 报告:

app/Exceptions/Handler.php
Copied
public function report(Throwable $exception)
{
    if (app()->bound('sentry') && $this->shouldReport($exception)) {
        app('sentry')->captureException($exception);
    }

    parent::report($exception);
}

从 vendor 目录复制 Sentry 配置文件:

Copied
cp vendor/sentry/sentry-laravel/config/sentry.php config/sentry.php

之后,将您的 DSN 添加到 .env

.env
Copied
SENTRY_LARAVEL_DSN=https://examplePublicKey@o0.ingest.sentry.io/0

您可以使用提供的 sentry:test Artisan 命令测试配置:

Copied
php artisan sentry:test

您可以通过创建一个会抛出异常的路由来验证 Sentry 是否正在捕获 Laravel 应用程序中的错误:

routes/web.php
Copied
Route::get('/debug-sentry', function () {
    throw new Exception('My first Sentry error!');
});

访问此路由将触发一个会被 Sentry 捕获的异常。

当 Sentry 安装在您的应用程序中时,它在您进行开发或运行测试时也会处于活动状态。

您很可能不希望在开发或运行测试时将错误发送到 Sentry。为了避免这种情况,将 DSN 值设置为 null 以禁用发送错误到 Sentry。

您也可以通过不在 .env 中定义 SENTRY_LARAVEL_DSN 或将其定义为 SENTRY_LARAVEL_DSN=null 来实现这一点。

如果您在开发或运行测试时保持 Sentry 启用,它可能会对应用程序或测试套件的性能产生负面影响。