Registro em log de mensagens do servidor (servidores personalizados) - Amazon GameLift

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Registro em log de mensagens do servidor (servidores personalizados)

Você pode capturar mensagens personalizadas do servidor de seus servidores GameLift personalizados da Amazon em arquivos de log. Para saber mais sobre o registro em servidores em tempo real, consulte Registrando mensagens do servidor (servidores em tempo real).

Importante

Há um limite no tamanho de um arquivo de log por sessão de jogo (veja GameLift endpoints e cotas da Amazon no Referência geral da AWS). Quando uma sessão de jogo termina, a Amazon GameLift carrega os registros do servidor para o Amazon Simple Storage Service (Amazon S3). A Amazon não GameLift fará upload de registros que excedam o limite. Os troncos podem crescer muito rapidamente e exceder o limite de tamanho. Você deve monitorar seus logs e limitar a saída do log somente às mensagens necessárias.

Configurando o registro em log para servidores personalizados

Com os servidores GameLift personalizados da Amazon, você escreve seu próprio código para realizar o registro, que você configura como parte da configuração do processo do servidor. A Amazon GameLift usa sua configuração de registro para identificar os arquivos que devem ser enviados para o Amazon S3 no final de cada sessão de jogo.

As instruções a seguir mostram como configurar o registro usando exemplos de código simplificados:

C++
Para configurar o registro em log (C++)
  1. Crie um vetor de strings que sejam caminhos de diretório para arquivos de log do servidor de jogos.

    std::string serverLog("serverOut.log"); // Example server log file std::vector<std::string> logPaths; logPaths.push_back(serverLog);
  2. Forneça seu vetor como o LogParametersdo seu 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. Forneça o ProcessParametersobjeto ao chamar ProcessReady().

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

Para um exemplo mais completo, consulte ProcessReady().

C#
Para configurar o registro em log (C#)
  1. Crie uma lista de strings que são caminhos de diretório para arquivos de log do servidor de jogos.

    List<string> logPaths = new List<string>(); logPaths.Add("C:\\game\\serverOut.txt"); // Example of a log file that the game server writes
  2. Forneça sua lista como a LogParametersdo seu ProcessParametersobjeto.

    var processReadyParameter = new ProcessParameters( this.OnGameSession, this.OnProcessTerminate, this.OnHealthCheck, this.OnGameSessionUpdate, port, new LogParameters(logPaths));
  3. Forneça o ProcessParametersobjeto ao chamar ProcessReady().

    var processReadyOutcome = GameLiftServerAPI.ProcessReady(processReadyParameter);

Para um exemplo mais completo, consulte ProcessReady().

Gravar em registros

Seus arquivos de log existem após o início do processo do servidor. Você poderá gravar nos registros usando qualquer método para gravar nos arquivos. Para capturar toda a saída padrão e a saída de erro do seu servidor, remapeie os fluxos de saída para arquivos de log, como nos exemplos a seguir:

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

Acessando logs do servidor

Quando uma sessão de jogo termina, a Amazon armazena GameLift automaticamente os registros em um bucket do Amazon S3 e os retém por 14 dias. Para obter a localização dos registros de uma sessão de jogo, você pode usar a operação da GetGameSessionLogUrlAPI. Para baixar os registros, use a URL que a operação retorna.