Registro de mensajes del servidor (servidores personalizados) - 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 (servidores personalizados)

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

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 la salida del registro a los mensajes necesarios únicamente.

Configuración del registro para servidores personalizados

Con los servidores GameLift personalizados de Amazon, escribes tu propio código para realizar el registro, que configuras como parte de la configuración del proceso del servidor. Amazon GameLift utiliza su configuración de registro para identificar los archivos que debe cargar en Amazon S3 al final de cada sesión de juego.

Las siguientes instrucciones muestran cómo configurar el registro mediante ejemplos de código simplificados:

C++
Para configurar el registro (C++), realice el siguiente procedimiento:
  1. Cree un vector de cadenas que sean rutas de directorio a los archivos de registro del servidor de juegos.

    std::string serverLog("serverOut.log"); // Example server log file std::vector<std::string> logPaths; logPaths.push_back(serverLog);
  2. Proporcione su vector como el LogParametersde su ProcessParametersobjeto.

    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. Proporcione el ProcessParametersobjeto cuando llame a ProcessReady().

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

Para ver un ejemplo más completo, consulte ProcessReady().

C#
Para configurar el registro (C#), realice el siguiente procedimiento:
  1. Cree una lista de cadenas que sean rutas de directorio a los archivos de registro del servidor de juegos.

    List<string> logPaths = new List<string>(); logPaths.Add("C:\\game\\serverOut.txt"); // Example of a log file that the game server writes
  2. Proporcione su lista como la LogParametersde su ProcessParametersobjeto.

    var processReadyParameter = new ProcessParameters( this.OnGameSession, this.OnProcessTerminate, this.OnHealthCheck, this.OnGameSessionUpdate, port, new LogParameters(logPaths));
  3. Proporcione el ProcessParametersobjeto cuando llame a ProcessReady().

    var processReadyOutcome = GameLiftServerAPI.ProcessReady(processReadyParameter);

Para ver un ejemplo más completo, consulte ProcessReady().

Escritura en los registros

Los archivos de registro existirán después de que comience el proceso del servidor. Puede escribir en los registros mediante cualquier método para escribir en los archivos. Para capturar todos los resultados estándar y de errores del servidor, reasigne los flujos de salida a los archivos de registro, como en los ejemplos siguientes:

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"));

Acceso a los registros del servidor

Cuando finaliza una sesión de juego, Amazon almacena GameLift automáticamente los registros en un bucket de Amazon S3 y los conserva durante 14 días. Para obtener la ubicación de los registros de una sesión de juego, puedes usar la operación de la GetGameSessionLogUrlAPI. Para descargar los registros, utilice la URL que devuelve la operación.