jenssegers/raven
Composer 安装命令:
composer require jenssegers/raven
包简介
Sentry (Raven) error monitoring integration for Laravel projects
README 文档
README
Sentry (Raven) error monitoring integration for Laravel projects. This library adds a listener to Laravel's logging component. Laravel's auth and session information will be sent in to Sentry's user context, as well as some other helpful tags such as 'environment', 'server', 'php_version' and 'ip'.
Installation
Install using composer:
composer require jenssegers/raven
Add the service provider in app/config/app.php:
Jenssegers\Raven\RavenServiceProvider::class,
If you only want to enable Sentry reporting for certain environments you can conditionally load the service provider in your AppServiceProvider:
if ($this->app->environment('production')) { $this->app->register(Jenssegers\Raven\RavenServiceProvider::class); }
Optional: register the Raven alias:
'Raven' => Jenssegers\Raven\Facades\Raven::class,
Configuration
This package supports configuration through environment variables and/or the services configuration file located in app/config/services.php:
'raven' => [ 'dsn' => env('RAVEN_DSN'), 'level' => env('LOG_LEVEL'), ],
The level variable defines the minimum log level at which log messages are sent to Sentry. For development you could set this either to debug to send all log messages, or to none to sent no messages at all. For production you could set this to error so that all info and debug messages are ignored.
For more information about the possible configuration variables, check https://github.com/getsentry/raven-php
Usage in Laravel
In Laravel, the service provider will automatically hook into Laravel's logger and send all messages matching the log level to Sentry.
If you want to send exceptions to Sentry, simply use the Log facade:
try { something(); } catch (\Exception $e) { Log::error($e); }
For logging messages or exceptions, you can any of these methods: debug, notice, warning, error, critical, alert or emergency.
Log::debug('Here is some debug information');
Alternative usage
If you prefer dependency injection rather than calling the Log facade, you can typehint the Jenssegers\Raven\RavenHandler class in your controller methods:
use Jenssegers\Raven\RavenHandler as Raven; ... public function index(Request $request, Raven $raven) { Raven::info('Request received!'); }
Context informaton
The included context builder will automatically collect information about the current logged in user and the session information. If can pass additional user context information like this:
Log::error('Something went wrong', [ 'user' => ['name' => 'John Doe', 'email' => 'john@doe.com'] ]);
Or pass additional tags:
Log::info('Task completed', [ 'tags' => ['state' => 1234] ]);
Or pass some extra information:
Log::warning('Something went wrong', [ 'download_size' => 3432425235 ]);
Usage in Lumen
Because Lumen uses a different way of handling logging, the service provider is unable to intercept actual exceptions. Instead you can use the included Raven facade. First add the following to your bootstrap/app.php:
$app->register(Jenssegers\Raven\RavenServiceProvider::class);
Then add this to your exception handler in app/Exceptions/Handler.php:
use Jenssegers\Raven\Facades\Raven;
And:
public function report(Exception $e) { if ($this->shouldReport($e)) { Raven::error($e); } parent::report($e); }
jenssegers/raven 适用场景与选型建议
jenssegers/raven 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 197.33k 次下载、GitHub Stars 达 90, 最近一次更新时间为 2014 年 05 月 01 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「logging」 「error」 「monitoring」 「laravel」 「sentry」 「raven」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 jenssegers/raven 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 jenssegers/raven 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 jenssegers/raven 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
A Symfony bundle for chameleon-system/sanitycheck
A Zend Framework module that sets up Monolog for logging in applications.
SoftWax Health Check Bundle for Symfony framework
1Pilot client for Symfony
Statsd (Object Oriented) client library for PHP
Asynchronous Sentry for Symfony - Fire and forget
统计信息
- 总下载量: 197.33k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 92
- 点击次数: 25
- 依赖项目数: 2
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2014-05-01