Logs API No-Op Implementation

状态: 稳定

OpenTelemetry 的用户需要一种方法来禁用 API 的实际操作。No-Op OpenTelemetry API 实现(以下简称 No-Op)为此功能提供了用户。它实现了 OpenTelemetry Logs API,因此不会产生任何遥测数据,并最大限度地减少计算资源。

所有语言的 OpenTelemetry 实现都必须提供 No-Op。

Logs API 定义了具有各种操作的组件。所有 No-Op 组件都不得持有配置或操作状态。所有 No-op 操作都必须接受所有定义的参数,不得验证收到的任何参数,并且不得返回任何非空错误或记录任何消息。

LoggerProvider

No-Op 必须允许创建多个 LoggerProviders

由于所有 LoggerProviders 都持有相同的空状态,因此 No-Op 可以将相同的 LoggerProvider 实例提供给所有创建请求。

Logger 创建

新的 Logger 实例始终使用 LoggerProvider 创建。因此,LoggerProvider 必须允许创建 Logger。创建的所有 Logger 都必须是 No-Op Logger 的实例。

由于所有 Logger 都将持有相同的空状态,因此 LoggerProvider 可以将相同的 Logger 实例返回给所有创建请求。

Logger

Emit LogRecord

No-Op Logger 必须允许 emit LogRecords

Enabled

始终必须返回 false