# 非OTLPログ形式におけるトレースコンテキスト

> Source: https://www.ymotongpoo.com/works/otel-specs-ja/spec/compatibility/logging_trace_context/


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

## 概要

OTLPのLog Recordは、[トレースコンテキスト](/works/otel-specs-ja/spec/logs/data-model/#trace-context-fields)を表すトップレベルのフィールドを持ちます。この文書は、非OTLPログ形式でトレースコンテキストをどのように記録すべきかを定義します。まとめると、既存の形式では以下のフィールド名を使うべきです（SHOULD）。

- [TraceId](/works/otel-specs-ja/spec/logs/data-model/#field-traceid)には"trace_id"（小文字・16進エンコード）。
- [SpanId](/works/otel-specs-ja/spec/logs/data-model/#field-spanid)には"span_id"（小文字・16進エンコード）。
- [trace flags](/works/otel-specs-ja/spec/logs/data-model/#field-traceflags)には"trace_flags"（W3Cのtraceflags形式に従ってフォーマットする）。

これら3つのフィールドはすべて任意です（どの組み合わせが有効とみなされるかの詳細は[データモデル](/works/otel-specs-ja/spec/logs/data-model/)を参照してください）。

### Syslog RFC5424

Trace ID、Span ID、trace flagsは、SD-ID "OpenTelemetry"を通じて記録すべきです（SHOULD）。

例:

```
[opentelemetry trace_id="102981abcd2901" span_id="abcdef1010" trace_flags="01"]
```

### プレーンテキスト形式

各フィールドは、その形式で慣習的に使われる方式に従って記録すべきです（SHOULD）（例えばLTSVであればfield:value形式）。例:

```
host:192.168.0.1<TAB>trace_id:102981abcd2901<TAB>span_id:abcdef1010<TAB>time:[01/Jan/2010:10:11:23 -0400]<TAB>req:GET /health HTTP/1.0<TAB>status:200
```

### JSON形式

各フィールドは、JSON構造のトップレベルのフィールドとして記録すべきです（SHOULD）。例:

```json
{
  "timestamp":1581385157.14429,
  "body":"Incoming request",
  "trace_id":"102981abcd2901",
  "span_id":"abcdef1010"
}
```

### その他の構造化形式

各フィールドは、その形式で慣習的に使われる方式に従って、ログレコードのトップレベルの構造化属性として記録すべきです（SHOULD）。

