vimar / enhanced-cloud-logging-formatter
Monolog 扩展,用于格式化 Google Cloud Logging 和错误报告的日志条目
Requires
- php: ^8.1
- monolog/monolog: ^3.0
README
注意 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 许可证授权。您可以在项目中自由使用、修改和分发它。