vimar/enhanced-cloud-logging-formatter

Monolog 扩展,用于格式化 Google Cloud Logging 和错误报告的日志条目

v3.0.6 2024-05-17 15:18 UTC

README

Total Downloads Latest Stable Version

注意 v3.x 版本仅与 Monolog 3.x 兼容,如果您使用 Monolog 2.x,请使用 v2.x

Enhanced Cloud Logging Formatter 是一个用于 Monolog 的自定义格式化程序,它替换了 Monolog 提供的默认 GoogleCloudLoggingFormatter。此格式化程序旨在在您想要将 PHP 应用程序的日志发送到 Google Cloud Logging 时使用。

功能

  • 错误报告GoogleCloudLoggingFormatter 启用错误报告,允许您控制错误事件向 Google Cloud Platform (GCP) 的报告。可以修改 errorReportingLevel 参数来指定触发错误报告的最小日志级别。

  • 完整的日志元数据:此格式化程序完成日志元数据,在发送日志到 GCP 之前提供额外的上下文信息。这确保日志包含完整的详细信息,使分析和调试问题更容易。额外的元数据包括

    • 唯一的 RequestId,便于搜索单个 HTTP 请求的所有日志
    • 每个日志条目的详尽的 HTTP 信息,例如请求 URL、引用者、远程 IP 和用户代理
    • 对于 CLI 命令、脚本命令和脚本文件名
    • 当抛出错误时,添加有关错误上下文的信息(报告位置、堆栈跟踪、异常消息、服务名称和版本号,如果提供)

安装

您可以通过 Composer 安装 Enhanced Cloud Logging Formatter

composer require vimar/enhanced-cloud-logging-formatter

基本用法

要使用 GoogleCloudLoggingFormatter,您需要配置您的应用程序中的 Monolog。

<?php

require_once 'vendor/autoload.php';

use Monolog\Logger;
use Monolog\Handler\StreamHandler;
use Vimar\EnhancedCloudLoggingFormatter\Formatter\GoogleCloudLoggingFormatter;

// Create a logger
$log = new Logger('my_logger');

// Create a handler with GoogleCloudLoggingFormatter
$handler = new StreamHandler('php://stdout');
$handler->setFormatter(new GoogleCloudLoggingFormatter());

// Add the handler to the logger
$log->pushHandler($handler);

// Example logs
$log->info('This is an informational message.');
$log->error('An error occurred!');

在此示例中,日志通过使用带有 GoogleCloudLoggingFormatter 的 StreamHandler 发送到标准输出 (php://stdout)。根据您的具体日志需求调整处理器配置。

配置选项

GoogleCloudLoggingFormatter 替换了 Monolog 的默认 Google Cloud Logging 格式化程序,并支持以下配置选项

  • errorReportingLevel - 触发错误报告的最小日志级别。
  • service - GCP 自定义服务名称。
  • version - GCP 自定义版本号。
new GoogleCloudLoggingFormatter(
    errorReportingLevel: Logger::CRITICAL,
    service: 'myService',
    'version': '1.2.3'
)

贡献

如果您遇到问题或有改进建议,请随时为此项目做出贡献。通过 GitHub 仓库提交错误报告或功能请求。

许可

GoogleCloudLoggingFormatter 是开源软件,根据 MIT 许可证授权。您可以在项目中自由使用、修改和分发它。