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
设置正确。
使用
现在无论您想在何处记录消息,只需使用常规日志门面即可。
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();
注意:查看配置文件以获取更多信息!