> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# PlayFab 統合 SDK でのデバッグ トレース

> PlayFab 統合 SDK でデバッグ トレースを有効化・構成します。HCTraceLevel の詳細度を設定し、出力を Visual Studio にルーティング、またはカスタム ゲーム ログに転送します。

PlayFab 統合 SDK は、開発者が内部 API の動作を監視し、エラーを追跡し、PlayFab ログをゲームのログ インフラストラクチャに統合できるよう、拡張可能なデバッグ トレース システムを提供しています。デバッグ出力は、開発中に Visual Studio の Output ペインにルーティングすることもできます。

## 概要

デバッグ トレースは次の用途で役立ちます:

* PlayFab SDK のリクエストと応答の監視
* API 呼び出し失敗の診断
* カスタム ログ システムとの統合
* 環境ごとのログ詳細度の調整 (開発 vs. 本番)
* スレッド ID 追跡によるマルチスレッド問題のデバッグ

## トレースの有効化と構成

次の API 呼び出しを使用して、トレースを有効化し、詳細度を設定し、出力の送信先を構成できます:

```cpp theme={null}
HCSettingsSetTraceLevel(HCTraceLevel::Verbose);  // Verbose, Error, or Off
HCTraceSetTraceToDebugger(true);                 // Route to Visual Studio Output window
HCTraceSetClientCallback(TraceCallback);         // Custom trace handler
```

## トレース レベル

| レベル                     | 説明                          |
| ----------------------- | --------------------------- |
| `HCTraceLevel::Off`     | すべてのトレースを無効化します             |
| `HCTraceLevel::Error`   | 失敗した API 呼び出しのみをログに記録します    |
| `HCTraceLevel::Verbose` | すべてのリクエスト、応答、メタデータをログに記録します |

## カスタム ログ システムとの統合

### GameLog ヘルパー関数

```cpp theme={null}
#include <iostream>
#include <string>

void GameLog(const std::string& levelStr, const std::string& message)
{
    std::cout << "[" << levelStr << "] " << message << std::endl;
}
```

### トレース コールバックの例

```cpp theme={null}
#include <sstream>

void CALLBACK TraceCallback(
    const char* areaName,
    HCTraceLevel level,
    uint64_t threadId,
    uint64_t timestamp,
    const char* message)
{
    std::ostringstream oss;

    std::string levelStr;
    switch (level)
    {
        case HCTraceLevel::Error:   levelStr = "Error";   break;
        case HCTraceLevel::Verbose: levelStr = "Verbose"; break;
        default:                    levelStr = "Log";     break;
    }

    oss << "[" << areaName << "] [Thread " << threadId << "] " << message;
    GameLog(levelStr, oss.str());
}
```

### 初期化

```cpp theme={null}
void InitializePlayFabTracing()
{
    HCSettingsSetTraceLevel(HCTraceLevel::Verbose);
    HCTraceSetTraceToDebugger(true);  // Set to false to suppress VS Output pane
    HCTraceSetClientCallback(TraceCallback);
}
```

## ベスト プラクティス

* **開発時は Verbose**: デバッグと QA のための包括的なトレースを有効化します。
* **本番では Error または Off**: パフォーマンスへの影響とログの量を削減します。
* **ログの一元化**: 統一された `GameLog` 関数または類似のものを使用して、PlayFab やその他のシステムからのログを集約します。
* **マルチスレッドのデバッグ**: ログ内のスレッド ID を使用して、並行処理の問題を特定します。

## 関連項目

* [非同期操作](/services/playfab/sdks/unified-sdk/async-model)
* [メモリ管理](/services/playfab/sdks/unified-sdk/memory-management)
* [トレースと診断](/services/playfab/sdks/unified-sdk/debug-trace)


## Related topics

- [ゲーム サーバーのローカル デバッグと PlayFab との統合](/ja-jp/services/playfab/multiplayer/servers/locally-debugging-game-servers-and-integration-with-playfab.md)
- [デバッグ トレース](/ja-jp/services/playfab/sdks/c/tracing.md)
- [クイックスタート Win32](/ja-jp/services/playfab/sdks/c/quickstart-win32.md)
- [クイックスタート (Windows) - PlayFab サービスの呼び出し](/ja-jp/services/playfab/sdks/unified-sdk/quickstart-services.md)
- [クイックスタート (Windows) - Core SDK セットアップ](/ja-jp/services/playfab/sdks/unified-sdk/quickstart-core.md)
