itafroma/snaglogger

Bugsnag 的 PSR-3 记录器

2.1.0 2018-07-12 04:19 UTC

This package is auto-updated.

Last update: 2024-08-29 04:19:56 UTC


README

Snaglogger 是一个与 PSR-3 兼容的记录器,它将日志消息发送到 Bugsnag

安装

您可以通过 Composer 将 Snaglogger 添加到项目中

{
    "require": {
        "itafroma/snaglogger": "^2.0"
    }
}

Snaglogger 使用 语义化版本控制。一般来说,您可以锁定到 ^[MAJOR].0 并有信心在更新过程中不会收到破坏性的更改。

使用方法

快速入门

Snaglogger 附带了一个工厂,该工厂使用合理的默认值实例化记录器

use Itafroma\Snaglogger\LoggerFactory;

$key    = 'YOUR BUGSNAG API KEY HERE';
$logger = LoggerFactory::create($key);

一旦实例化,记录器将像任何其他 PSR-3 兼容的记录器一样工作

$logger->info('This is an informational message.');
$logger->error('This is an error.');

PSR-3 上下文数组

Snaglogger 将 $context 数组的内容作为 元数据 发送到 Bugsnag。

此外,Snaglogger 将两个 $context 键视为特殊键

  • 如果 exception 键包含异常的实例,Snaglogger 将记录日志消息作为异常而不是错误。
  • 如果设置了 error-type 键,Snaglogger 将使用该键作为错误类型。否则,它将使用错误严重性。

最后,Snaglogger 将使用 $context 数组在日志消息中进行占位符替换

$message = 'The {location} is on fire!';
$context = ['location' => 'roof'];

// Bugsnag will record the error message as "The roof is on fire!"
$logger->error($message, $context);

严重性级别

Bugsnag 仅支持三个严重性级别:info、warning 和 error。然而,PSR-3 要求记录器支持八个:emergency、alert、critical、error、warning、notice、info 和 debug。默认情况下,Snaglogger 将这些额外的日志级别映射到最接近的 Bugsnag 严重性级别

  • emergency → error
  • alert → error
  • critical → error
  • error → error
  • warning → warning
  • notice → info
  • info → info
  • debug → info

高级使用

某些功能可以通过实现某些接口进行自定义

更多信息可以在这些接口的文档中找到。

您还可以自定义 Bugsnag 客户端

要覆盖 Snaglogger 的默认功能,您需要

  1. 实现自己的 \Itafroma\Snaglogger\LoggerFactoryInterface 具体类,或者
  2. 直接调用 Logger 构造函数。

例如

$client = Client::make('API KEY')->setReleaseStage('prod');
$interpolator = new CustomMessageInterpolator();
$mapper = new CustomSeverityMapper();

$logger = new Logger($client, $interpolator, $mapper);

贡献

欢迎贡献!请参阅单独的 CONTRIBUTING 文件以获取更多信息。

版权和许可

此扩展由 Mark Trapp 版权所有。版权所有。它根据 MIT 许可证提供。许可证的副本可以在 LICENSE 文件中找到。

免责声明

本项目与Bugsnag没有任何关联。更多免责声明可以在许可文件中找到。