Journalisation des messages du serveur (serveurs personnalisés) - Amazon GameLift Servers

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Journalisation des messages du serveur (serveurs personnalisés)

Vous pouvez capturer des messages de serveur personnalisés à partir de vos serveurs Amazon GameLift Servers personnalisés dans des fichiers journaux. Pour en savoir plus sur la journalisation pour Amazon GameLift ServersRealtime, voirJournalisation des messages du serveur (Amazon GameLift ServersRealtime).

Important

La taille d'un fichier journal par session de jeu est limitée (voir Amazon GameLift Serverspoints de terminaison et quotas dans le Références générales AWS). À la fin d'une session de jeuAmazon GameLift Servers, les journaux du serveur sont chargés sur Amazon Simple Storage Service (Amazon S3). Amazon GameLift Serversne téléchargera pas les journaux dépassant la limite. Les grumes peuvent pousser très rapidement et dépasser la limite de taille. Vous devez surveiller vos journaux et limiter la sortie des journaux aux seuls messages nécessaires.

Configuration de la journalisation pour les serveurs personnalisés

Avec les serveurs Amazon GameLift Servers personnalisés, vous écrivez votre propre code pour effectuer la journalisation, que vous configurez dans le cadre de la configuration des processus de votre serveur. Amazon GameLift Serversutilise votre configuration de journalisation pour identifier les fichiers qu'il doit télécharger sur Amazon S3 à la fin de chaque session de jeu.

Les instructions suivantes montrent comment configurer la journalisation à l'aide d'exemples de code simplifiés :

C++
Pour configurer la journalisation (C++)
  1. Créez un vecteur de chaînes qui sont des chemins de répertoire vers les fichiers journaux du serveur de jeu.

    std::string serverLog("serverOut.log"); // Example server log file std::vector<std::string> logPaths; logPaths.push_back(serverLog);
  2. Indiquez votre vecteur comme étant celui LogParametersde votre ProcessParametersobjet.

    Aws::GameLift::Server::ProcessParameters processReadyParameter = Aws::GameLift::Server::ProcessParameters( std::bind(&Server::onStartGameSession, this, std::placeholders::_1), std::bind(&Server::onProcessTerminate, this), std::bind(&Server::OnHealthCheck, this), std::bind(&Server::OnUpdateGameSession, this), listenPort, Aws::GameLift::Server::LogParameters(logPaths));
  3. Fournissez l'ProcessParametersobjet lorsque vous appelez ProcessReady().

    Aws::GameLift::GenericOutcome outcome = Aws::GameLift::Server::ProcessReady(processReadyParameter);

Pour un exemple plus complet, voirProcessReady().

C#
Pour configurer la journalisation (C#)
  1. Créez une liste de chaînes qui sont des chemins de répertoire vers les fichiers journaux du serveur de jeu.

    List<string> logPaths = new List<string>(); logPaths.Add("C:\\game\\serverOut.txt"); // Example of a log file that the game server writes
  2. Indiquez votre liste en LogParameterstant qu'ProcessParametersobjet.

    var processReadyParameter = new ProcessParameters( this.OnGameSession, this.OnProcessTerminate, this.OnHealthCheck, this.OnGameSessionUpdate, port, new LogParameters(logPaths));
  3. Fournissez l'ProcessParametersobjet lorsque vous appelez ProcessReady().

    var processReadyOutcome = GameLiftServerAPI.ProcessReady(processReadyParameter);

Pour un exemple plus complet, voirProcessReady().

Écrire dans des journaux

Vos fichiers journaux existent une fois que le processus de votre serveur a démarré. Vous pouvez écrire dans les journaux en utilisant n'importe quelle méthode pour écrire dans des fichiers. Pour capturer toutes les sorties standard et les sorties d'erreur de votre serveur, remappez les flux de sortie en fichiers journaux, comme dans les exemples suivants :

C++
std::freopen("serverOut.log", "w+", stdout); std::freopen("serverErr.log", "w+", stderr);
C#
Console.SetOut(new StreamWriter("serverOut.txt")); Console.SetError(new StreamWriter("serverErr.txt"));

Accès aux journaux du serveur

À la fin d'une session de jeu, les journaux Amazon GameLift Servers sont automatiquement stockés dans un compartiment Amazon S3 et les conservent pendant 14 jours. Pour obtenir l'emplacement des journaux d'une session de jeu, vous pouvez utiliser l'opération GetGameSessionLogUrlAPI. Pour télécharger les journaux, utilisez l'URL renvoyée par l'opération.