rcrowe / raven
Raven 是一个支持通过多个提供商进行后台处理的 Sentry 客户端。
Requires
- guzzlehttp/guzzle: ~4.1.0
- raven/raven: ~0.9.0
Requires (Dev)
- laravel/framework: ~4.2.0
- mockery/mockery: ~0.9.0
- phpunit/phpunit: ~4.1.0
- satooshi/php-coveralls: ~0.6
- squizlabs/php_codesniffer: ~1.5.0
This package is auto-updated.
Last update: 2024-08-29 03:37:24 UTC
README
Raven 是一个用于记录和发送消息到 Sentry 的客户端。
其独特之处在于可以在后台将这些消息发送到 Sentry。不再需要在发送 HTTP 请求时减慢速度!
Raven 在如何捕获、处理和发送这些消息方面提供了灵活性。同时也提供了快速无缝集成到各种框架中的能力,例如
安装
将 rcrowe\raven
添加到 composer.json 中的要求
{ "require": { "rcrowe/raven": "~0.2.0" } }
使用 composer update
更新您的包或使用 composer install
安装。
然后按照您 提供商 的说明进行操作(如果您正在使用一个的话)。
使用
此库公开了与官方 raven-php 客户端相同的 API 用于记录您的消息。只需将 Raven_Client
替换为 rcrowe\Raven\Client
即可。有关记录消息的使用方法,请参阅 raven-php。
要立即记录消息并将其发送到 Sentry(默认操作)
$raven = new \rcrowe\Raven\Client(##DSN##); $raven->captureMessage('FooBar');
处理器
处理器负责将新捕获的消息放入后台队列。如果没有在 raven 客户端中注册处理器,则消息会立即发送。
以下是如何向客户端添加处理器的示例
$raven = new \rcrowe\Raven\Client(##DSN##); $raven->setHandler( new \rcrowe\Raven\Handler\Sync );
同步处理器
(默认)与 raven-php 一样,新消息会立即发送。
Laravel 处理器
如果在使用 Laravel 项目中,将使用 illuminate\queue
API。要改进 Laravel 集成,请查看下面的 Laravel 提供商。
$raven = new \rcrowe\Raven\Client(##DSN##); $raven->setHandler( new \rcrowe\Raven\Handler\Laravel( null, App::make('queue') ); );
传输
传输负责将消息发送到 Sentry API。传输始终是传递给处理器的第一个参数。如果没有提供传输,则默认为 HTTP。
$raven->setHandler( new \rcrowe\Raven\Handler\Sync( new \rcrowe\Raven\Transport\Dummy ) );
模拟
模拟传输什么都不做。不会将任何内容发送到 API。您可能不希望在开发环境中发送任何消息。
HTTP
(默认)通过 HTTP 发送消息。为此,我们使用出色的 HTTP 客户端 Guzzle。
$raven->setHandler( new \rcrowe\Raven\Handler\Sync( new \rcrowe\Raven\Transport\Guzzle ) );
由于这是默认传输机制,因此不需要将其传递给处理器。上面的调用与以下相同
$raven->addHandler( new \rcrowe\Raven\Handler\Sync );
提供商
提供商提供与其他库/框架的无痛集成。
Laravel
安装
将服务提供商添加到 app/config/app.php
'rcrowe\Raven\Provider\Laravel\RavenServiceProvider',
可选地注册外观到您的别名
'Sentry' => 'rcrowe\Raven\Provider\Laravel\Facade\Raven',
配置
Raven 需要知道您的客户端 DSN。首先使用以下命令发布 Raven 配置文件
php artisan config:publish rcrowe/raven
然后编辑 app/config/packages/rcrowe/raven/config.php
您还可以从 app/config/services.php
设置您的 Raven DSN
'raven' => [ 'dsn' => '...' ],
注意: Raven 使用 Laravel 队列,因此请确保您的 app/config/queue.php
已正确设置。
使用
现在,无论您在哪里想要记录消息,只需使用正常的 Log 外观即可。
try { throw new Exception('This is an example'); } catch (Exception $ex) { Log::error($ex); }
要捕获和发送所有消息,您可以添加以下内容
App::error(function(Exception $exception, $code) { Log::error($exception); });
注意: 注意,Laravel 默认在 app/start/global.php
中执行此操作
使用别名,您可以设置/删除所有消息的用户信息
Sentry::setUser([ 'id' => 1, 'name' => 'Rob Crowe', ]); Sentry::removeUser();
注意:查看配置文件获取更多信息!