# ログAPIのNo-Op実装

> Source: https://www.ymotongpoo.com/works/otel-specs-ja/spec/logs/noop/


**ステータス**: [Stable](../../document-status/)

OpenTelemetryの利用者には、実際にはいかなる操作も実行しないようにAPIを無効化する手段が必要です。No-Op OpenTelemetry API実装（以下No-Opと呼びます）は、この機能を利用者に提供します。No-Opは[OpenTelemetryログAPI](../api/)を実装し、テレメトリーが生成されず、計算リソースの使用が最小化されるようにします。

OpenTelemetryのすべての言語実装は、No-Opを提供しなければなりません（MUST）。

[ログAPI](../api/)は、さまざまな操作を持つコンポーネントを定義します。すべてのNo-Opコンポーネントは、設定や動作状態を保持してはなりません（MUST NOT）。すべてのNo-Op操作は、定義されたすべてのパラメータを受け付けなければならず（MUST）、受け取った引数を検証してはならず（MUST NOT）、空でないエラーを返したりメッセージをログに記録したりしてはなりません（MUST NOT）。

## LoggerProvider

No-Opは、複数の`LoggerProvider`の作成を許可しなければなりません（MUST）。

すべての`LoggerProvider`が同じ空の状態を保持するため、No-Opはすべての作成リクエストに対して同じ`LoggerProvider`のインスタンスを提供してもよい（MAY）。

### Loggerの作成

新しい`Logger`インスタンスは、常に[LoggerProvider](../api/#loggerprovider)から作成されます。したがって、`LoggerProvider`は`Logger`の作成を許可しなければなりません（MUST）。作成されるすべての`Logger`は、[No-Op Logger](#logger)のインスタンスでなければなりません（MUST）。

すべての`Logger`が同じ空の状態を保持するため、`LoggerProvider`はすべての作成リクエストに対して同じ`Logger`のインスタンスを返してもよい（MAY）。

## Logger

### LogRecordの発行

No-Opの`Logger`は、[LogRecordの発行](../api/#logrecordの発行)を許可しなければなりません（MUST）。

### Enabled

常に`false`を返さなければなりません（MUST）。

