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

# Traçage de débogage dans le SDK unifié PlayFab

> Activez et configurez le traçage de débogage dans le SDK unifié PlayFab : définissez le niveau de détail HCTraceLevel, redirigez la sortie vers Visual Studio ou transférez-la vers les journaux personnalisés du jeu.

Le SDK unifié PlayFab fournit un système de traçage de débogage extensible pour aider les développeurs à surveiller le comportement interne des API, à suivre les erreurs et à intégrer les journaux PlayFab dans l'infrastructure de journalisation de leur jeu. La sortie de débogage peut également être redirigée vers le volet Sortie de Visual Studio pendant le développement.

## Vue d'ensemble

Le traçage de débogage est utile pour :

* Surveiller les requêtes et les réponses du SDK PlayFab
* Diagnostiquer les échecs d'appels d'API
* S'intégrer à des systèmes de journalisation personnalisés
* Ajuster le niveau de détail des journaux selon l'environnement (développement ou production)
* Déboguer les problèmes de multithreading grâce au suivi des ID de thread

## Activation et configuration du traçage

Vous pouvez activer le traçage, définir le niveau de détail et configurer la destination de la sortie à l'aide des appels d'API suivants :

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

## Niveaux de traçage

| Niveau | Description |
| - | - |
| `HCTraceLevel::Off` | Désactive tout le traçage |
| `HCTraceLevel::Error` | Journalise uniquement les appels d'API ayant échoué |
| `HCTraceLevel::Verbose` | Journalise toutes les requêtes, les réponses et les métadonnées |

## Intégration à des systèmes de journalisation personnalisés

### Fonction d'assistance GameLog

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

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

### Exemple de rappel de traçage

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

### Initialisation

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

## Bonnes pratiques

* **Verbose en développement** : active un traçage complet pour le débogage et l'assurance qualité.
* **Error ou Off en production** : réduit l'impact sur les performances et le volume de journaux.
* **Centraliser la journalisation** : utilisez une fonction `GameLog` unifiée ou similaire pour agréger les journaux de PlayFab et des autres systèmes.
* **Déboguer le multithreading** : utilisez l'ID de thread dans les journaux pour identifier les problèmes de concurrence.

## Voir aussi

* [Opérations asynchrones](/fr/services/playfab/sdks/unified-sdk/async-model)
* [Gestion de la mémoire](/fr/services/playfab/sdks/unified-sdk/memory-management)
* [Traçage et diagnostics](/fr/services/playfab/sdks/unified-sdk/debug-trace)


## Related topics

- [Gestion de la mémoire dans le SDK unifié PlayFab](/fr/services/playfab/sdks/unified-sdk/memory-management.md)
- [Effectuer des appels asynchrones dans le SDK unifié PlayFab](/fr/services/playfab/sdks/unified-sdk/async-model.md)
- [Traçage et journalisation de diagnostic dans les SDK PlayFab Party](/fr/services/playfab/multiplayer/networking/party-logging.md)
- [Traçage de diagnostic dans les SDK PlayFab Lobby et Matchmaking](/fr/services/playfab/multiplayer/lobby/lobby-matchmaking-sdks/lobby-matchmaking-logging.md)
- [Implémentation de Game Saves avec le GDK d'octobre 2025](/fr/services/playfab/player-progression/game-saves/october-2025-gdk-changes.md)
