bgalati/monolog-sentry-handler

Sentry 处理器,适用于 PHP SDK v2/v3

2.1.0 2024-03-02 13:53 UTC

This package is auto-updated.

Last update: 2024-09-20 10:08:58 UTC


README

CI Latest Version MIT License

这是一个为 Sentry PHP SDK v2、v3 和 v4 提供面包屑支持的 Monolog 处理器。

Sentry event example

特性

  • 将每个日志记录发送到 Sentry 服务器
  • 在批量处理时,将日志记录作为面包屑发送;主报告的日志记录是具有最高日志级别的记录
  • 当主日志记录上下文中有异常设置时,将日志与异常一起发送
  • 自定义发送到 Sentry 的数据以满足您的需求
  • 兼容 Monolog 1、2 和 3

安装

建议通过 composer 安装

# For Sentry PHP SDK v3/v4
composer require bgalati/monolog-sentry-handler

# For Sentry PHP SDK v2
composer require bgalati/monolog-sentry-handler:^1.2

基本用法

<?php

use BGalati\MonologSentryHandler\SentryHandler;
use Sentry\State\Hub;

$sentryHandler = new SentryHandler(Hub::getCurrent());

/** @var $logger Monolog\Logger */
$logger->pushHandler($sentryHandler);

// Add records to the log
$logger->debug('Foo');
$logger->error('Bar');

查看 处理器构造函数 了解如何控制最小日志级别和冒泡。

注意

  • 将此处理器与 FingersCrossedHandlerBufferHandler 结合使用是一个好主意,这样可以利用 Sentry 面包屑。它为每个 Sentry 事件提供了最大的上下文。

查看 symfony 指南以获取 Monolog 和 symfony 的完整示例

文档

常见问题解答

与官方 Monolog Sentry 处理器相比有何区别?

目前官方 SDK 提供了两种 Monolog 处理器

  • Sentry\Monolog\Handler:每个日志记录都成为 Sentry 事件
    • 根据设置,可能会产生大量噪音。
  • Sentry\Monolog\BreadcrumbHandler:将每个日志记录添加到当前事件中作为面包屑
    • 它不能仅与 Monolog 一起使用:它需要默认集成才能正确工作。

这两个处理器都不立即发送事件。因此,发送 Sentry 事件发生在 PHP 进程终止或显式执行刷新时。

此库提出了不同的处理器

  • 它在每个调用时刷新 Sentry 事件:看起来像是 Monolog 处理器的标准
  • 当与如 FingersCrossedHandler 之类的缓冲处理器一起使用时,它将日志记录添加为面包屑

关于将其贡献给 Monolog 项目的看法如何?

根据这个 评论,Monolog 项目不接受具有第三方依赖项的新处理器。

在我看来,具有第三方依赖项的新处理器正确的方法是将其作为第三方软件包发布,指定对 monolog 和所需依赖项的依赖项。这允许 Composer 解决所有问题,这实际上更有意义。

贡献

分叉我。

使用 make vendor 安装依赖项。

使用 make tests 运行测试。

更改日志

查看 CHANGELOG.md

致谢