Journalisation des messages du serveur (serveurs en temps réel) - Amazon GameLift

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 en temps réel)

Vous pouvez capturer des messages de serveur personnalisés à partir de vos serveurs en temps réel dans des fichiers journaux. Pour en savoir plus sur la journalisation pour les serveurs personnalisés, consultezJournalisation des messages du serveur (serveurs personnalisés).

Il existe différents types de messages que vous pouvez enregistrer dans vos fichiers journaux (voirEnregistrement des messages dans le script de votre serveur). Outre vos messages personnalisés, vos serveurs en temps réel émettent des messages système utilisant les mêmes types de messages et écrivent dans les mêmes fichiers journaux. Vous pouvez ajuster le niveau de journalisation de votre parc afin de réduire le nombre de messages de journalisation générés par vos serveurs (voirRéglage du niveau de journalisation).

Important

La taille d'un fichier journal par session de jeu est limitée (voir Amazon GameLift Endpoints and Quotas dans le Références générales AWS). À la fin d'une session de jeu, Amazon GameLift télécharge les journaux du serveur sur Amazon Simple Storage Service (Amazon S3). Amazon ne GameLift téléchargera pas de journaux dépassant cette 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.

Enregistrement des messages dans le script de votre serveur

Vous pouvez générer des messages personnalisés dans le script pour vos serveurs en temps réel. Pour envoyer des messages du serveur à un fichier journal, procédez comme suit :

  1. Créez une variable pour contenir la référence à l'objet enregistreur.

    var logger;
  2. Dans la init() fonction, récupérez l'enregistreur à partir de l'objet de session et attribuez-le à votre variable d'enregistrement.

    function init(rtSession) { session = rtSession; logger = session.getLogger(); }
  3. Appelez la fonction appropriée de l'enregistreur pour afficher un message.

    Messages de débogage

    logger.debug("This is my debug message...");

    Messages d'information

    logger.info("This is my info message...");

    Messages d'avertissement

    logger.warn("This is my warn message...");

    Messages d'erreur

    logger.error("This is my error message...");

    Messages d'erreur fatals

    logger.fatal("This is my fatal error message...");

    Messages d'erreur fatale liés à l'expérience client

    logger.cxfatal("This is my customer experience fatal error message...");

Pour un exemple des instructions de journalisation dans un script, consultezExemple de script de serveurs en temps réel.

La sortie des fichiers journaux indique le type de message (DEBUG,,INFO,WARN, ERRORFATAL,CXFATAL), comme le montrent les lignes suivantes d'un exemple de journal :

09 Sep 2021 11:46:32,970 [INFO] (gamelift.js) 215: Calling GameLiftServerAPI.InitSDK...
09 Sep 2021 11:46:32,993 [INFO] (gamelift.js) 220: GameLiftServerAPI.InitSDK succeeded
09 Sep 2021 11:46:32,993 [INFO] (gamelift.js) 223: Waiting for Realtime server to start...
09 Sep 2021 11:46:33,15 [WARN] (index.js) 204: Connection is INSECURE. Messages will be sent/received as plaintext.

Accès aux journaux du serveur

À la fin d'une session de jeu, Amazon stocke GameLift automatiquement les journaux dans Amazon S3 et les conserve pendant 14 jours. Vous pouvez utiliser l'appel d'GetGameSessionLogUrl API pour obtenir l'emplacement des journaux d'une session de jeu. Utilisez l'URL renvoyée par l'appel d'API pour télécharger les journaux.

Réglage du niveau de journalisation

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. Pour les serveurs en temps réel, vous pouvez ajuster le niveau de journalisation en fournissant un paramètre dans la configuration d'exécution de votre flotte sous la formeloggingLevel:LOGGING_LEVEL, où LOGGING_LEVEL figure l'une des valeurs suivantes :

  1. debug

  2. info(par défaut)

  3. warn

  4. error

  5. fatal

  6. cxfatal

Cette liste est ordonnée du moins grave (debug) au plus grave (cxfatal). Vous définissez un seul loggingLevel et le serveur n'enregistrera que les messages correspondant à ce niveau de gravité ou à un niveau de gravité supérieur. Par exemple, le paramètre loggingLevel:error obligera tous les serveurs de votre parc à écrire error et à cxfatal envoyer des messages uniquement dans le journal. fatal

Vous pouvez définir le niveau de journalisation de votre flotte lors de sa création ou après son fonctionnement. La modification du niveau de journalisation de votre flotte après son exécution n'affectera que les journaux des sessions de jeu créées après la mise à jour. Les journaux des sessions de jeu existantes ne seront pas affectés. Si vous ne définissez pas de niveau de journalisation lors de la création de votre flotte, vos serveurs définiront le niveau de journalisation info par défaut. Reportez-vous aux sections suivantes pour obtenir des instructions permettant de définir le niveau de journalisation.

Configuration du niveau de journalisation lors de la création d'un parc de serveurs en temps réel (console)

Suivez les instructions de la Créez une flotte GameLift gérée par Amazon section pour créer votre flotte, en ajoutant ce qui suit :

  • Dans la sous-étape d'allocation des processus du serveur de l'étape de gestion des processus, fournissez la paire clé-valeur du niveau de journalisation (telle queloggingLevel:error) en tant que valeur pour les paramètres de lancement. Utilisez un caractère non alphanumérique (sauf une virgule) pour séparer le niveau de journalisation de tout paramètre supplémentaire (par exemple,). loggingLevel:error +map Winter444

Configuration du niveau de journalisation lors de la création d'un parc de serveurs en temps réel () AWS CLI

Suivez les instructions de la Créez une flotte GameLift gérée par Amazon section pour créer votre flotte, en ajoutant ce qui suit :

  • Dans l'argument du --runtime-configuration paramètre forcreate-fleet, indiquez la paire clé-valeur du niveau de journalisation (telle queloggingLevel:error) en tant que valeur pour. Parameters Utilisez un caractère non alphanumérique (sauf une virgule) pour séparer le niveau de journalisation de tout paramètre supplémentaire. Consultez l’exemple suivant:

--runtime-configuration "GameSessionActivationTimeoutSeconds=60, MaxConcurrentGameSessionActivations=2, ServerProcesses=[{LaunchPath=/local/game/myRealtimeLaunchScript.js, Parameters=loggingLevel:error +map Winter444, ConcurrentExecutions=10}]"
Configuration du niveau de journalisation pour un parc de serveurs en temps réel en cours d'exécution (console)

Suivez les instructions de la section Mettre à jour la configuration d'une flotte pour mettre à jour votre flotte à l'aide de la GameLift console Amazon, en ajoutant ce qui suit :

  • Sur la page Modifier le parc, sous Allocation des processus du serveur, indiquez la paire clé-valeur du niveau de journalisation (telle queloggingLevel:error) en tant que valeur pour les paramètres de lancement. Utilisez un caractère non alphanumérique (sauf une virgule) pour séparer le niveau de journalisation de tout paramètre supplémentaire (par exemple,). loggingLevel:error +map Winter444

Configuration du niveau de journalisation pour un parc de serveurs en temps réel en cours d'exécution () AWS CLI

Suivez les instructions indiquées Mettre à jour la configuration d'une flotte pour mettre à jour votre flotte à l'aide duAWS CLI, avec l'ajout suivant :

  • Dans l'argument du --runtime-configuration paramètre forupdate-runtime-configuration, indiquez la paire clé-valeur du niveau de journalisation (telle queloggingLevel:error) en tant que valeur pour. Parameters Utilisez un caractère non alphanumérique (sauf une virgule) pour séparer le niveau de journalisation de tout paramètre supplémentaire. Consultez l’exemple suivant:

--runtime-configuration "GameSessionActivationTimeoutSeconds=60, MaxConcurrentGameSessionActivations=2, ServerProcesses=[{LaunchPath=/local/game/myRealtimeLaunchScript.js, Parameters=loggingLevel:error +map Winter444, ConcurrentExecutions=10}]"