> ## 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.

# Rastreamento de depuração no SDK unificado do PlayFab

> Habilite e configure o rastreamento de depuração no SDK unificado do PlayFab: defina o nível de detalhes de HCTraceLevel, envie a saída para o Visual Studio ou encaminhe-a para logs personalizados do jogo.

O SDK unificado do PlayFab fornece um sistema extensível de rastreamento de depuração para ajudar os desenvolvedores a monitorar o comportamento interno da API, acompanhar erros e integrar os logs do PlayFab à infraestrutura de registro em log do jogo. A saída de depuração também pode ser encaminhada para o painel Saída do Visual Studio durante o desenvolvimento.

## Visão geral

O rastreamento de depuração é útil para:

* Monitorar requisições e respostas do SDK do PlayFab
* Diagnosticar falhas em chamadas à API
* Integrar com sistemas de registro em log personalizados
* Ajustar o nível de detalhes dos logs por ambiente (desenvolvimento x produção)
* Depurar problemas de multithreading por meio do acompanhamento do ID da thread

## Habilitando e configurando o rastreamento

Você pode habilitar o rastreamento, definir o nível de detalhes e configurar para onde a saída é enviada usando as seguintes chamadas à API:

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

## Níveis de rastreamento

| Nível | Descrição |
| - | - |
| `HCTraceLevel::Off` | Desabilita todo o rastreamento |
| `HCTraceLevel::Error` | Registra apenas as chamadas à API com falha |
| `HCTraceLevel::Verbose` | Registra todas as requisições, respostas e metadados |

## Integrando com sistemas de registro em log personalizados

### Função auxiliar GameLog

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

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

### Exemplo de callback de rastreamento

```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());
}
```

### Inicialização

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

## Práticas recomendadas

* **Verbose no desenvolvimento**: habilita um rastreamento abrangente para depuração e QA.
* **Error ou Off na produção**: reduz o impacto no desempenho e o volume de logs.
* **Centralize o registro em log**: use uma função `GameLog` unificada ou semelhante para agregar os logs do PlayFab e de outros sistemas.
* **Depure o multithreading**: use o ID da thread nos logs para identificar problemas de simultaneidade.

## Confira também

* [Operações assíncronas](/pt-BR/services/playfab/sdks/unified-sdk/async-model)
* [Gerenciamento de memória](/pt-BR/services/playfab/sdks/unified-sdk/memory-management)
* [Rastreamento e diagnóstico](/pt-BR/services/playfab/sdks/unified-sdk/debug-trace)


## Related topics

- [SDK unificado do PlayFab](/pt-BR/services/playfab/sdks/unified-sdk/overview.md)
- [Gerenciamento de memória no SDK unificado do PlayFab](/pt-BR/services/playfab/sdks/unified-sdk/memory-management.md)
- [Fazendo chamadas assíncronas no SDK unificado do PlayFab](/pt-BR/services/playfab/sdks/unified-sdk/async-model.md)
- [Produtos de SDK do PlayFab](/pt-BR/services/playfab/sdks/sdk-products.md)
- [Configuração do início rápido do SDK unificado do PlayFab](/pt-BR/services/playfab/sdks/unified-sdk/quickstart-setup.md)
