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 leur sortie 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 de votre processus serveur. Amazon GameLift Serversutilise votre configuration de journalisation pour identifier les fichiers qu'il doit télécharger sur 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 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

L'accès aux journaux varie selon le type de flotte :

EC2 Flottes gérées

À la fin d'une session de jeu, stocke Amazon GameLift Servers automatiquement les journaux dans un compartiment S3 et les conserve 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.

Vous pouvez également configurer votre propre solution de journalisation en configurant votre serveur de jeu pour envoyer les journaux directement à votre service de journalisation ou à votre lieu de stockage préféré. Pour de plus amples informations, veuillez consulter Communiquez avec les autres AWS ressources de vos flottes.

Flottes de conteneurs

Les flottes de conteneurs capturent les flux de sortie et d'erreur standard de tous les conteneurs. Vous pouvez configurer la journalisation à l'aide de l'une des options suivantes :

  • Enregistrer la sortie du conteneur sous forme de flux de CloudWatch journaux dans un groupe de journaux spécifié

  • Enregistrer la sortie du conteneur dans un compartiment de stockage S3

  • Désactiver la journalisation (la sortie du conteneur n'est pas enregistrée)

Pour obtenir des informations détaillées sur la configuration des options de journalisation lors de la création de flottes de conteneurs, consultez LogConfigurationla référence des Amazon GameLift Servers API.