tonijz / raven
Raven客户端,支持通过多个提供程序进行后台处理。
Requires
- php: >=5.2.4
- guzzle/guzzle: 3.7.*
- raven/raven: 0.7.*
Requires (Dev)
This package is not auto-updated.
Last update: 2024-09-24 06:58:49 UTC
README
Raven是用于记录和传输消息到Sentry的客户端。
它的特别之处在于可以将这些消息在后台传输到Sentry。不再需要在发起HTTP请求时减慢速度!
安装
在composer.json中将rcrowe\raven
添加为需求
{ "require": { "rcrowe/raven": "dev-master" } }
使用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客户端注册处理器,则消息将直接传输。
以下是如何将处理器添加到客户端
$raven = new \rcrowe\Raven\Client(##DSN##); $raven->addHandler( new \rcrowe\Raven\Handler\Sync );
同步处理器
(默认) 与raven-php类似,新消息会立即传输。
Laravel处理器
如果在Laravel项目中使用,则使用illuminate\queue
API。有关改进Laravel集成的信息,请参阅下面的Laravel提供者。
$raven = new \rcrowe\Raven\Client(##DSN##); $raven->addHandler( new \rcrowe\Raven\Handler\Laravel( null, App::make('queue') ); );
Resque处理器
待办事项
- 将基于https://github.com/chrisboulton/php-resque
传输
传输负责将消息发送到Sentry API。传输始终是传递给处理器时的第一个参数。如果没有提供传输,则默认为HTTP。
$raven->addHandler( new \rcrowe\Raven\Handler\Sync( new \rcrowe\Raven\Transport\Dummy ) );
模拟
模拟传输完全不执行任何操作。不会将任何消息传输到API。在开发环境中工作时不希望传输任何消息。
Http
(默认) 通过HTTP传输消息。为此,我们使用出色的HTTP客户端Guzzle。
$raven->addHandler( new \rcrowe\Raven\Handler\Sync( new \rcrowe\Raven\Transport\Guzzle ) );
作为默认传输机制,无需将其传递给处理器。上面的调用与以下调用相同
$raven->addHandler( new \rcrowe\Raven\Handler\Sync );
UDP
待办事项
提供者
提供者提供了与其他库/框架的无痛集成。
Laravel
安装
Raven需要知道您的客户端DSN。首先使用以下命令发布Raven配置文件
php artisan config:publish rcrowe/raven --path vendor/rcrowe/raven/src/Provider/Laravel/config/
然后编辑app/config/packages/rcrowe/raven/config.php
现在将RavenServiceProvider添加到app/config/app.php
rcrowe\Raven\Provider\Laravel\RavenServiceProvider
确保app/config/queue.php
已按照您想要连接的后台队列的方式设置。有关在Laravel中处理队列的更多信息,请参阅他们的文档。
用法
现在,无论您在哪里想要记录消息,只需使用正常的Log外观即可。
try { throw new Exception('This is an example'); } catch (Exception $ex) { Log::error($ex); }