bigfork/silverstripe-sentry-handler

用于Sentry的独立Monolog处理器

安装次数: 4,476

依赖项: 1

建议者: 1

安全性: 0

星标: 1

关注者: 3

分支: 1

开放性问题: 0

类型:silverstripe-vendormodule

2.1.0 2023-05-31 09:17 UTC

This package is auto-updated.

Last update: 2024-08-30 01:14:50 UTC


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