bigfork / silverstripe-sentry-handler
用于Sentry的独立Monolog处理器
2.1.0
2023-05-31 09:17 UTC
Requires
- php: ^8.0
- sentry/sdk: ^3
- sentry/sentry: ^3.4
- silverstripe/framework: ^5
README
一个简约模块,旨在使获取用于Monolog日志记录器的Sentry\Monolog\Handler
实例变得更容易。
⚠️ 如果您只想将错误记录到Sentry,您可能最好使用phptek/sentry
模块而不是此模块。
本模块的不同之处在于,其目标是使使用具有不同配置选项的多个Logger实例与Sentry一起使用变得更容易。
安装
composer require bigfork/silverstripe-sentry-handler
配置
只需添加一个包含在Sentry UI中提供的DSN的SENTRY_DSN
环境变量。
自定义
默认情况下,此模块会将一个额外的处理器推送到默认的Psr\Log\LoggerInterface.errorhandler
服务,将错误推送到Sentry(类似于phptek/sentry
模块)。您可以使用以下方法禁用此行为
SilverStripe\Core\Injector\Injector: Psr\Log\LoggerInterface.errorhandler: calls: pushSentryErrorHandler: null
您可以使用SentryHubFactory
类配置另一个Sentry\Monolog\Handler
实例,以帮助构建您的Sentry hub并传递处理器
SilverStripe\Core\Injector\Injector: # Build a custom Hub object which holds our Sentry config, will be passed to the handler below MySentryHub: factory: 'Bigfork\SilverstripeSentryHandler\SentryHubFactory' constructor: options: dsn: '`SENTRY_DSN`' tags: - 'sometag' default_integrations: false integrations: - '%$MyCustomIntegrationClass' # Build Sentry\Monolog\Handler instance, to be pushed to logger above MySentryMonologHandler: class: 'Sentry\Monolog\Handler' constructor: - '%$MySentryHub' # Our custom hub object defined above - 'info' # Send anything logged at "info" level or above # Finally, build the logger service - access with Injector::inst()->get('MyMonologLogger') MyMonologLogger: type: 'singleton' class: 'Monolog\Logger' constructor: - 'myloggername' calls: pushSentryHandler: [ pushHandler, ['%$MySentryMonologHandler'] ] # Handler instance defined above