Journalisation des messages du serveur (Amazon GameLift ServersRealtime) - 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 (Amazon GameLift ServersRealtime)

Vous pouvez capturer des messages de serveur personnalisés à partir de vos Amazon GameLift Servers Realtime 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 messages système Amazon GameLift Servers Realtime de sortie utilisent les mêmes types de messages et les écrivez 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 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.

Enregistrement des messages dans le script de votre serveur

Vous pouvez générer des messages personnalisés dans le script de votre Amazon GameLift ServersRealtime. 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, consultezAmazon GameLift ServersRealtimeexemple de script.

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, les journaux sont Amazon GameLift Servers automatiquement stockés dans Amazon S3 et conservés 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 la sortie des journaux aux seuls messages nécessaires. En Amazon GameLift Servers Realtime effet, vous pouvez ajuster le niveau de journalisation en fournissant un paramètre dans la configuration d'exécution de votre flotte sous le formulaireloggingLevel: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 lorsque vous la créez ou une fois qu'elle est en cours d'exécution. 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'une Amazon GameLift ServersRealtime flotte (console)

Suivez les instructions indiquées Création d'une EC2 flotte Amazon GameLift Servers gérée 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

Définition du niveau de journalisation lors de la création d'une Amazon GameLift ServersRealtime flotte (AWS CLI)

Suivez les instructions indiquées Création d'une EC2 flotte Amazon GameLift Servers gérée 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 Amazon GameLift ServersRealtime parc en cours d'exécution (console)

Suivez les instructions de la section Mettre à jour la configuration d'une Amazon GameLift Servers flotte pour mettre à jour votre flotte à l'aide de la Amazon GameLift Servers console, 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 une Amazon GameLift ServersRealtime flotte en cours de fonctionnement (AWS CLI)

Suivez les instructions indiquées Mettre à jour la configuration d'une Amazon GameLift Servers flotte pour mettre à jour votre flotte à l'aide du AWS 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}]"