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

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 Amazon GameLift Servers personalizados em arquivos de log. Para saber mais sobre como registrar Amazon GameLift ServersRealtime, consulteRegistrando mensagens do servidor (Amazon GameLift ServersRealtime).

Importante

Há um limite no tamanho de um arquivo de log por sessão de jogo (veja Amazon GameLift Serversendpoints e cotas no Referência geral da AWS). Quando uma sessão de jogo termina, Amazon GameLift Servers carrega os registros do servidor para o Amazon Simple Storage Service (Amazon S3). Amazon GameLift Serversnão carregará 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 servidores Amazon GameLift Servers personalizados, você escreve seu próprio código para realizar o registro, que você configura como parte da configuração do processo do servidor. Amazon GameLift Serversusa sua configuração de registro para identificar os arquivos que devem ser enviados para o 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

O acesso aos registros varia de acordo com o tipo de frota:

EC2 Frotas gerenciadas

Quando uma sessão de jogo termina, armazena Amazon GameLift Servers automaticamente os registros em um bucket do 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.

Como alternativa, você pode configurar sua própria solução de registro configurando seu servidor de jogo para enviar registros diretamente para o serviço de registro ou local de armazenamento de sua preferência. Para obter mais informações, consulte Comunique-se com outros AWS recursos de suas frotas.

Frotas de contêineres

As frotas de contêineres capturam fluxos de saída e erro padrão de todos os contêineres. Você pode configurar o registro usando uma das seguintes opções:

  • Salve a saída do contêiner como fluxos de CloudWatch log em um grupo de registros especificado

  • Salve a saída do contêiner em um bucket de armazenamento S3

  • Desativar o registro (a saída do contêiner não é salva)

Para obter informações detalhadas sobre como configurar as opções de registro ao criar frotas de contêineres, consulte a LogConfigurationReferência da Amazon GameLift Servers API.