Laravel
Laravel 是一个具有简洁、优雅语法的 PHP Web 应用程序框架。了解如何将其与 Sentry 集成。
- 你需要一个 Sentry 账户 和项目
- 你的 Laravel 应用程序需要运行在 PHP 7.2 或更高版本
- 你的 Laravel 版本需要是 11.x 或更高版本
- 如果你使用的是 旧版本 或需要 Lumen 特定的说明,请阅读相应的指南
安装 sentry/sentry-laravel
包:
composer require sentry/sentry-laravel
通过在你的 bootstrap/app.php
中进行以下更改,启用捕获未处理的异常以报告给 Sentry:
bootstrap/app.php
<?php
use Illuminate\Foundation\Application;
use Illuminate\Foundation\Configuration\Exceptions;
use Illuminate\Foundation\Configuration\Middleware;
use Sentry\Laravel\Integration;
return Application::configure(basePath: dirname(__DIR__))
->withRouting(
web: __DIR__.'/../routes/web.php',
commands: __DIR__.'/../routes/console.php',
health: '/up',
)
->withMiddleware(function (Middleware $middleware) {
//
})
->withExceptions(function (Exceptions $exceptions) {
Integration::handles($exceptions);
})
->create();
或者,你可以将 Sentry 配置为 Laravel 日志通道。
使用以下命令配置 Sentry DSN:
php artisan sentry:publish --dsn=https://examplePublicKey@o0.ingest.sentry.io/0
它会创建配置文件 (config/sentry.php
) 并将 DSN
添加到你的 .env
文件中。
.env
SENTRY_LARAVEL_DSN=https://examplePublicKey@o0.ingest.sentry.io/0
为了在错误中接收堆栈跟踪参数,请确保在你的 php.ini 中设置 zend.exception_ignore_args: Off
你可以使用提供的 sentry:test
artisan 命令来测试你的配置:
php artisan sentry:test
你可以通过创建一个会抛出异常的路由来验证 Sentry 是否在你的 Laravel 应用程序中捕获错误:
routes/web.php
Route::get('/debug-sentry', function () {
throw new Exception('My first Sentry error!');
});
访问此路由将触发一个异常,并被 Sentry 捕获。
在 config/sentry.php
中设置 traces_sample_rate
或在 .env
中设置 SENTRY_TRACES_SAMPLE_RATE
为大于 0.0
的值。设置大于 0.0
的值将启用跟踪,null
(默认值)将禁用跟踪。
.env
# Be sure to lower this value in production otherwise you could burn through your quota quickly.
SENTRY_TRACES_SAMPLE_RATE=1.0
上面的示例配置将传输 100% 的捕获跟踪。请确保在生产环境中降低此值,否则可能会迅速用完配额。
你还可以通过使用 traces_sampler
选项更精细地控制采样率。了解更多内容请参阅 使用采样过滤事务事件。
性能数据通过一种称为“transactions”的新事件类型传输,你可以在 分布式跟踪 中了解更多信息。
当 Sentry 安装在你的应用程序中时,它在开发或运行测试时也会处于活动状态。
你通常不希望在开发或运行测试时将错误发送到 Sentry。为了避免这种情况,请将 DSN 值设置为 null
以禁用发送错误到 Sentry。
你也可以通过不在 .env
中定义 SENTRY_LARAVEL_DSN
或将其定义为 SENTRY_LARAVEL_DSN=null
来实现这一点。
如果你在开发或运行测试时仍然启用 Sentry,可能会对应用程序或测试套件的性能产生负面影响。
如果你使用 Laravel 的 Forge 平台来配置和部署你的 PHP 应用程序,可以通过 Forge 创建一个 Sentry 组织。