Registro de mensajes del servidor (Realtime Servers) - Amazon GameLift

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Registro de mensajes del servidor (Realtime Servers)

Puede capturar mensajes de servidor personalizados de sus Realtime Servers en archivos de registro. Para obtener más información sobre el registro en servidores personalizados, consulte Registro de mensajes del servidor (servidores personalizados).

Existen distintos tipos de mensajes que puede enviar a sus archivos de registro (consulte Registro de los mensajes en el script del servidor). Además de los mensajes personalizados, los Realtime Servers generan mensajes del sistema con los mismos tipos de mensajes y los escriben en los mismos archivos de registro. Puede ajustar el nivel de registro de su flota para reducir la cantidad de mensajes de registro que generan sus servidores (consulte Ajuste del nivel de registro).

importante

Hay un límite en el tamaño de un archivo de registro por sesión de juego (consulta los GameLift puntos finales y las cuotas de Amazon en Referencia general de AWS). Cuando finaliza una sesión de juego, Amazon GameLift carga los registros del servidor en Amazon Simple Storage Service (Amazon S3). Amazon GameLift no subirá registros que superen el límite. Los registros pueden crecer muy rápido y superar el límite de tamaño. Debe supervisar los registros y limitar el resultado del registro a los mensajes necesarios únicamente.

Registro de los mensajes en el script del servidor

Puede generar mensajes personalizados en el script de sus Realtime Servers. Siga estos pasos para enviar mensajes del servidor a un archivo de registro:

  1. Cree una variable para retener la referencia en el objeto del registrador.

    var logger;
  2. En la función init(), obtenga el registrador del objeto de sesión y asígnelo a la variable del registrador.

    function init(rtSession) { session = rtSession; logger = session.getLogger(); }
  3. Llame a la función apropiada del registrador para generar un mensaje.

    Mensajes de depuración

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

    Mensajes informativos

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

    Mensajes de advertencia

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

    Mensajes de error

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

    Mensajes de error grave

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

    Mensajes de error grave en la experiencia del cliente

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

Para ver un ejemplo de las instrucciones de registro en un script, consulte Ejemplo del script de Realtime Servers.

El resultado de los archivos de registro indica el tipo de mensaje (DEBUG, INFO, WARN, ERROR, FATAL y CXFATAL), como se muestra en las siguientes líneas de un registro de ejemplo:

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.

Acceso a los registros del servidor

Cuando finaliza una sesión de juego, Amazon almacena GameLift automáticamente los registros en Amazon S3 y los conserva durante 14 días. Puedes usar la llamada a la GetGameSessionLogUrl API para obtener la ubicación de los registros de una sesión de juego. Utilice la URL devuelta por la llamada a la API para descargar los registros.

Ajuste del nivel de registro

Los registros pueden crecer muy rápido y superar el límite de tamaño. Debe supervisar los registros y limitar el resultado del registro a los mensajes necesarios únicamente. En el caso de Realtime Servers, puede ajustar el nivel de registro mediante un parámetro en la configuración del tiempo de ejecución de la flota en forma de loggingLevel:LOGGING_LEVEL, donde LOGGING_LEVEL sea uno de los siguientes valores:

  1. debug

  2. info (predeterminado)

  3. warn

  4. error

  5. fatal

  6. cxfatal

Esta lista está ordenada de menos grave (debug) a más grave (cxfatal). Si establece un parámetro loggingLevel único, el servidor solo registrará los mensajes con ese nivel de gravedad o uno superior. Por ejemplo, si se establece loggingLevel:error, todo los servidores de su flota solo escribirán mensajes error, fatal y cxfatal en el registro.

Puede establecer el nivel de registro de flota al crearlo o una vez que esté en ejecución. Si cambia el nivel de registro de la flota después de que esté en ejecución, solo se verán afectados los registros de las sesiones de juego creadas después de la actualización. Los registros de las sesiones de juego existentes no se verán afectados. Si no establece un nivel de registro al crear la flota, los servidores establecerán el nivel de registro en info de forma predeterminada. Consulte las siguientes secciones para obtener instrucciones sobre cómo configurar el nivel de registro.

Configuración del nivel de registro al crear una flota de Realtime Servers (consola)

Siga las instrucciones que aparecen en Creación de una flota administrada por Amazon GameLift para crear su flota y añada lo siguiente:

  • En el subpaso Asignación de los procesos del servidor del paso de Administración de procesos, proporcione el par clave-valor del nivel de registro (por ejemplo, loggingLevel:error) como valor para Parámetros de lanzamiento. Utilice un carácter no alfanumérico (excepto coma) para separar el nivel de registro de cualquier parámetro adicional (por ejemplo, loggingLevel:error +map Winter444).

Configuración del nivel de registro al crear una flota de Realtime Servers (AWS CLI)

Siga las instrucciones que aparecen en Creación de una flota administrada por Amazon GameLift para crear su flota y añada lo siguiente:

  • En el argumento del parámetro --runtime-configuration para create-fleet, proporcione el par clave-valor del nivel de registro (por ejemplo, loggingLevel:error) como valor para Parameters. Utilice un carácter no alfanumérico (excepto coma) para separar el nivel de registro de cualquier parámetro adicional. Vea el siguiente ejemplo:

--runtime-configuration "GameSessionActivationTimeoutSeconds=60, MaxConcurrentGameSessionActivations=2, ServerProcesses=[{LaunchPath=/local/game/myRealtimeLaunchScript.js, Parameters=loggingLevel:error +map Winter444, ConcurrentExecutions=10}]"
Configuración del nivel de registro para una flota de Realtime Servers en ejecución (consola)

Sigue las instrucciones que aparecen en Actualización de la configuración de una flota para actualizar tu flota mediante Amazon GameLift Console y añade lo siguiente:

  • En la página Editar flota, en Asignación de los procesos del servidor, proporcione el par clave-valor del nivel de registro (por ejemplologgingLevel:error) como valor para los parámetros de lanzamiento. Utilice un carácter no alfanumérico (excepto coma) para separar el nivel de registro de cualquier parámetro adicional (por ejemplo, loggingLevel:error +map Winter444).

Configuración del nivel de registro para una flota de Realtime Servers en ejecución (AWS CLI)

Siga las instrucciones que aparecen en Actualización de la configuración de una flota para actualizar su flota mediante la AWS CLI y añada lo siguiente:

  • En el argumento del parámetro --runtime-configuration para update-runtime-configuration, proporcione el par clave-valor del nivel de registro (por ejemplo, loggingLevel:error) como valor para Parameters. Utilice un carácter no alfanumérico (excepto coma) para separar el nivel de registro de cualquier parámetro adicional. Vea el siguiente ejemplo:

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