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

# HCTraceCallback

> ゲームが独自のログに統合できるように、libHttpClient のトレース メッセージを受け取るコールバック。

# HCTraceCallback

ゲームが独自のログに統合できるように、libHttpClient のトレース メッセージを受け取ります。

## 構文

```cpp theme={null}
void CALLBACK HCTraceCallback(  
         const char* areaName,  
         HCTraceLevel level,  
         uint64_t threadId,  
         uint64_t timestamp,  
         const char* message  
)  
```

### パラメーター

*areaName*   \_In\_z\_\
型: const char\*

メッセージを生成したトレース領域の null で終わる名前。libHttpClient は `HTTPCLIENT` 領域と `WEBSOCKET` 領域を使用します。XBOX services API (XSAPI) など、libHttpClient の上に構築されたライブラリは、`XSAPI` などの独自の領域を報告します。

*level*   \_In\_\
型: [HCTraceLevel](https://docs.xbox.com/ja-jp/reference/live/httpclient/trace/enums/hctracelevel.md)

メッセージのトレース レベル。

*threadId*   \_In\_\
型: uint64\_t

メッセージを生成したスレッドの ID。Windows PC および XBOX 本体では、この値は `GetCurrentThreadId` が返すオペレーティング システムのスレッド ID です。

*timestamp*   \_In\_\
型: uint64\_t

メッセージの時刻。トレースを開始した直近の初期化、つまりトレースの参照カウントを 0 から 1 に変更した [HCInitialize](https://docs.xbox.com/ja-jp/reference/live/httpclient/httpclient/functions/hcinitialize.md) または [HCTraceInit](https://docs.xbox.com/ja-jp/reference/live/httpclient/trace/functions/hctraceinit.md) の呼び出しからの経過ミリ秒数です。

*message*   \_In\_z\_\
型: const char\*

null で終わる、書式設定されたトレース メッセージ。このメッセージには、libHttpClient がデバッガー出力に追加するスレッド、レベル、時刻、および領域のプレフィックスは含まれません。

### 戻り値

型: void

## 解説

[HCTraceSetClientCallback](https://docs.xbox.com/ja-jp/reference/live/httpclient/trace/functions/hctracesetclientcallback.md) を呼び出してコールバックを登録します。

libHttpClient は、トレース メッセージを生成したスレッドでコールバックを同期的に呼び出します。複数のスレッドが同時にコールバックを呼び出す可能性があるため、コールバックはスレッド セーフにし、すぐに戻るようにしてください。

*areaName* と *message* の文字列は、呼び出しの間のみ有効です。後で必要な場合はコピーしてください。

libHttpClient は、メッセージのトレース領域の詳細レベル以下のメッセージに対してのみコールバックを呼び出します。libHttpClient のトレース領域の詳細レベルを変更するには、[HCSettingsSetTraceLevel](https://docs.xbox.com/ja-jp/reference/live/httpclient/trace/functions/hcsettingssettracelevel.md) を呼び出します。

[HCTraceCleanup](https://docs.xbox.com/ja-jp/reference/live/httpclient/trace/functions/hctracecleanup.md) を直接呼び出すたびに、登録されているすべてのクライアント コールバックが削除されます。libHttpClient の最終的なクリーンアップがトレースのクリーンアップに達したときにも、ライブラリのクリーンアップによって削除されます。登録を削除しても、既に実行中のコールバックの完了は待機されません。libHttpClient を再初期化した後は、コールバックを再度登録してください。

## 例

次の例では、[HCInitialize](https://docs.xbox.com/ja-jp/reference/live/httpclient/httpclient/functions/hcinitialize.md) が既に成功していることを前提としています。

```cpp theme={null}
void CALLBACK TraceCallback(
    _In_z_ char const* areaName,
    HCTraceLevel level,
    uint64_t threadId,
    uint64_t timestamp,
    _In_z_ char const* message
)
{
    // Forward the message to the game's logging system.
}

HCSettingsSetTraceLevel(HCTraceLevel::Verbose);
if (!HCTraceSetClientCallback(TraceCallback))
{
    // Registration failed. Report the failure through the game's logging or error handling.
}
```

## 要件

**ヘッダー:** trace.h

**ライブラリ:** libHttpClient.lib

**サポートされているプラットフォーム:** Windows、XBOX One ファミリー本体および XBOX Series 本体

## 関連項目

[trace](https://docs.xbox.com/ja-jp/reference/live/httpclient/trace/trace_members.md)\
[HCTraceSetClientCallback](https://docs.xbox.com/ja-jp/reference/live/httpclient/trace/functions/hctracesetclientcallback.md)\
[HCSettingsSetTraceLevel](https://docs.xbox.com/ja-jp/reference/live/httpclient/trace/functions/hcsettingssettracelevel.md)\
[HCTraceLevel](https://docs.xbox.com/ja-jp/reference/live/httpclient/trace/enums/hctracelevel.md)\
[Troubleshooting XBOX services APIs](https://docs.xbox.com/ja-jp/services/xbox-services/develop/troubleshooting/live-troubleshooting-apis.md)


## Related topics

- [trace](https://docs.xbox.com/ja-jp/reference/live/httpclient/trace/trace_members.md)
- [HCTraceSetClientCallback](https://docs.xbox.com/ja-jp/reference/live/httpclient/trace/functions/hctracesetclientcallback.md)
- [HCTracePlatformThisThreadIdCallback](https://docs.xbox.com/ja-jp/reference/live/httpclient/trace/functions/hctraceplatformthisthreadidcallback.md)
- [HCTraceSetPlatformCallbacks](https://docs.xbox.com/ja-jp/reference/live/httpclient/trace/functions/hctracesetplatformcallbacks.md)
- [HCTracePlatformWriteMessageToDebuggerCallback](https://docs.xbox.com/ja-jp/reference/live/httpclient/trace/functions/hctraceplatformwritemessagetodebuggercallback.md)
