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 启用,它可能会对应用程序或测试套件的性能产生负面影响。