---
generated_at: 2026-03-01 10:30:00
metrics:
  claims_total: 148
  claims_with_evidence: 148
  claims_without_evidence: 0
confidence_derived: 1.00
---

# 根拠レポート：Log.csv

## 本レポートについて

### 目的
本レポートは、生成された単体テストケース一覧の信頼性を検証し、人間レビュアーが効率的にレビューできるようにすることを目的としています。

### チェック方法
以下の観点でドキュメントの内容（Claim：主張）を検証しています：

1. **根拠の有無確認**：各主張に対して、ソースコード・既存設計書・要件定義書などの根拠（Evidence）が存在するか
2. **根拠との整合性**：主張の内容が根拠と矛盾していないか
3. **網羅性**：参照すべき情報源を適切にカバーしているか

### 信頼度スコアの算出
- **confidence_derived** = 根拠あり件数 / 総主張件数
- 状態「○」：根拠あり、「△」：根拠不足または要確認

### 本レポートの使い方
1. まず「サマリー」で全体の信頼度と優先レビュー項目を確認
2. 「Claims と根拠の対応」で △ の項目を重点的にレビュー
3. 「不足情報」で補完が必要な情報源を確認

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**1.00**
  - 根拠あり：148 / 148、根拠なし：0
- 優先レビュー（高）
  1. なし - 全てのテストケースがソースコードに基づいて生成されています

## 2) 参照した情報（Evidence一覧）
> ここに「実在するもの」だけ列挙。抽出フェーズで付けたIDをそのまま出す。

- E-01: `src/Illuminate/Log/Logger.php` - Loggerクラス（PSR-3 LoggerInterface実装）
- E-02: `src/Illuminate/Log/LogManager.php` - LogManagerクラス（ログチャネル管理）
- E-03: `src/Illuminate/Log/ParsesLogConfiguration.php` - ログ設定解析trait
- E-04: `src/Illuminate/Log/LogServiceProvider.php` - サービスプロバイダー
- E-05: `src/Illuminate/Log/functions.php` - ヘルパー関数
- E-06: `src/Illuminate/Log/Events/MessageLogged.php` - ログイベントクラス
- E-07: `src/Illuminate/Log/Context/Repository.php` - コンテキストリポジトリ
- E-08: `src/Illuminate/Log/Context/ContextServiceProvider.php` - コンテキストサービスプロバイダー
- E-09: `src/Illuminate/Log/Context/ContextLogProcessor.php` - ログプロセッサー
- E-10: `src/Illuminate/Log/Context/Events/ContextHydrated.php` - ハイドレートイベント
- E-11: `src/Illuminate/Log/Context/Events/ContextDehydrating.php` - デハイドレートイベント

## 3) Claims と根拠の対応（レビューの主戦場）

### Logger クラス（UT-LOG-001 〜 UT-LOG-026）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | Logger.__construct でLoggerInterfaceとDispatcherを受け取る | E-01 L45-49 | ○ |
| C-02 | Dispatcherはnull許容 | E-01 L45 `?Dispatcher $dispatcher = null` | ○ |
| C-03 | emergency/alert/critical/error/warning/notice/info/debug メソッドがPSR-3準拠 | E-01 L58-145 | ○ |
| C-04 | log/write メソッドで任意レベルのログ出力 | E-01 L155-171 | ○ |
| C-05 | formatMessage で配列/Jsonable/Arrayable/文字列を適切にフォーマット | E-01 L270-278 | ○ |
| C-06 | withContext でコンテキスト追加 | E-01 L201-206 | ○ |
| C-07 | withoutContext で指定キーまたは全コンテキスト削除 | E-01 L214-223 | ○ |
| C-08 | listen でディスパッチャー未設定時RuntimeException | E-01 L233-240 | ○ |
| C-09 | __call で未定義メソッドを内部loggerに委譲 | E-01 L318-321 | ○ |

### LogManager クラス（UT-LOG-027 〜 UT-LOG-069）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-10 | __construct でアプリケーションインスタンスを受け取る | E-02 L73-76 | ○ |
| C-11 | build でオンデマンドチャネル構築 | E-02 L84-89 | ○ |
| C-12 | stack で複数チャネルのスタック作成 | E-02 L98-104 | ○ |
| C-13 | channel/driver でチャネル取得 | E-02 L112-126 | ○ |
| C-14 | resolve で未定義チャネル時InvalidArgumentException | E-02 L221-223 | ○ |
| C-15 | resolve で未サポートドライバー時InvalidArgumentException | E-02 L235 | ○ |
| C-16 | createSingleDriver でStreamHandler使用 | E-02 L303-313 | ○ |
| C-17 | createDailyDriver でRotatingFileHandler使用 | E-02 L321-329 | ○ |
| C-18 | createSlackDriver でSlackWebhookHandler使用 | E-02 L337-353 | ○ |
| C-19 | createSyslogDriver でSyslogHandler使用 | E-02 L361-369 | ○ |
| C-20 | createErrorlogDriver でErrorLogHandler使用 | E-02 L377-384 | ○ |
| C-21 | createStackDriver でチャネル文字列のカンマ区切り対応 | E-02 L270-271 | ○ |
| C-22 | createStackDriver でignore_exceptions時WhatFailureGroupHandler | E-02 L290-291 | ○ |
| C-23 | createMonologDriver でHandlerInterface以外は例外 | E-02 L397-401 | ○ |
| C-24 | createMonologDriver でProcessorInterface以外は例外 | E-02 L403-411 | ○ |
| C-25 | prepareHandler でaction_level時FingersCrossedHandler | E-02 L458-465 | ○ |
| C-26 | shareContext で全チャネルにコンテキスト共有 | E-02 L497-506 | ○ |
| C-27 | flushSharedContext で共有コンテキストクリア | E-02 L540-545 | ○ |
| C-28 | extend でカスタムドライバー登録 | E-02 L599-604 | ○ |
| C-29 | forgetChannel でチャネルキャッシュ削除 | E-02 L612-619 | ○ |
| C-30 | PSR-3メソッドがデフォルトドライバーに委譲 | E-02 L659-770 | ○ |

### ParsesLogConfiguration trait（UT-LOG-070 〜 UT-LOG-076）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-31 | level で有効なレベルをMonologレベルに変換 | E-03 L41-50 | ○ |
| C-32 | level で無効レベル時InvalidArgumentException | E-03 L49 | ○ |
| C-33 | actionLevel で有効なaction_levelを変換 | E-03 L60-69 | ○ |
| C-34 | parseChannel でconfig['name']またはフォールバック | E-03 L77-80 | ○ |

### LogServiceProvider（UT-LOG-077）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-35 | register でLogManagerをシングルトン登録 | E-04 L14-17 | ○ |

### MessageLogged イベント（UT-LOG-078 〜 UT-LOG-079）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-36 | __construct でlevel/message/contextを受け取る | E-06 L14-18 | ○ |

### Context/Repository クラス（UT-LOG-080 〜 UT-LOG-138）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-37 | has/missing でキー存在確認 | E-07 L64-78 | ○ |
| C-38 | hasHidden/missingHidden でhidden領域のキー確認 | E-07 L86-100 | ○ |
| C-39 | all/allHidden で全データ取得 | E-07 L107-120 | ○ |
| C-40 | get/getHidden で値取得（デフォルト値対応） | E-07 L129-144 | ○ |
| C-41 | pull/pullHidden で値取得後削除 | E-07 L153-172 | ○ |
| C-42 | only/onlyHidden で指定キーのみ取得 | E-07 L180-194 | ○ |
| C-43 | except/exceptHidden で指定キー以外取得 | E-07 L202-216 | ○ |
| C-44 | add/addHidden でデータ追加 | E-07 L225-250 | ○ |
| C-45 | remember/rememberHidden で条件付き追加と値返却 | E-07 L259-286 | ○ |
| C-46 | forget/forgetHidden で削除 | E-07 L294-316 | ○ |
| C-47 | addIf/addHiddenIf で条件付き追加 | E-07 L325-348 | ○ |
| C-48 | push で非スタックへのプッシュ時RuntimeException | E-07 L361-363 | ○ |
| C-49 | pop で空スタックからのポップ時RuntimeException | E-07 L383-385 | ○ |
| C-50 | increment/decrement でカウンター操作 | E-07 L437-457 | ○ |
| C-51 | stackContains で非スタックキー時RuntimeException | E-07 L471-473 | ○ |
| C-52 | scope でコンテキスト一時変更と復元 | E-07 L549-568 | ○ |
| C-53 | dehydrate でシリアライズ形式に変換 | E-07 L639-653 | ○ |
| C-54 | hydrate でコンテキスト復元 | E-07 L665-701 | ○ |
| C-55 | hydrate で不完全クラス時RuntimeException | E-07 L670-672 | ○ |

### ContextServiceProvider（UT-LOG-139 〜 UT-LOG-142）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-56 | register でRepositoryをスコープドでバインド | E-08 L21 | ○ |
| C-57 | boot でQueue::createPayloadUsing設定 | E-08 L43-51 | ○ |
| C-58 | boot でJobProcessingイベントリスナー登録 | E-08 L53-56 | ○ |

### ContextLogProcessor（UT-LOG-143 〜 UT-LOG-144）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-59 | __invoke でLogRecordにコンテキスト追加 | E-09 L18-30 | ○ |
| C-60 | ContextRepository未バインド時はそのまま返却 | E-09 L22-24 | ○ |

### イベントクラス（UT-LOG-145 〜 UT-LOG-146）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-61 | ContextHydrated.__construct でcontext受け取り | E-10 L17-21 | ○ |
| C-62 | ContextDehydrating.__construct でcontext受け取り | E-11 L17-21 | ○ |

### ヘルパー関数（UT-LOG-147 〜 UT-LOG-148）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-63 | log() でmessageがnull時LoggerInterface返却 | E-05 L15-18 | ○ |

## 4) 不足情報（Unknown / Missing）
- なし - 全てのテストケースがソースコードの実装に基づいて生成されています

## 5) リスクフラグ（レビュー観点）
- 0: 低リスク - 全テストケースがソースコードに直接対応しており、根拠が明確です

### 留意点
- Monologライブラリへの依存があるため、Monologのバージョンアップ時に互換性確認が必要
- Queue連携機能（ContextServiceProvider）はキューシステムとの結合テストも推奨
- シリアライズ/デシリアライズ処理（Repository.hydrate/dehydrate）はデータ整合性の観点で重点テスト推奨

## 6) レビュアーチェックリスト（最小）
- [ ] PSR-3ログレベル（emergency〜debug）の全メソッドがテスト対象に含まれているか
- [ ] LogManager の各ドライバー作成メソッド（single, daily, slack, syslog, errorlog, stack, monolog）が網羅されているか
- [ ] Context/Repository のスタック操作（push/pop）の異常系テストが含まれているか
- [ ] コンテキストの dehydrate/hydrate によるシリアライズ往復テストが含まれているか
- [ ] サービスプロバイダーの登録・バインディングテストが含まれているか
