Registrando mensagens do servidor (Amazon GameLift ServersRealtime) - 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á.

Registrando mensagens do servidor (Amazon GameLift ServersRealtime)

Você pode capturar mensagens personalizadas do servidor a partir dos seus Amazon GameLift Servers Realtime arquivos de log. Para saber mais sobre o registro em servidores personalizados, consulte Registro em log de mensagens do servidor (servidores personalizados).

Há diferentes tipos de mensagens que você pode enviar para seus arquivos de log (consulte Registrar mensagens no script do seu servidor). Além das mensagens personalizadas, as mensagens do sistema Amazon GameLift Servers Realtime de saída usam os mesmos tipos de mensagens e gravam nos mesmos arquivos de log. Você pode ajustar o nível de registro da sua frota para reduzir a quantidade de mensagens de registro que seus servidores geram (consulte Ajustar logs).

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ê deverá monitorar seus registros e limitar a saída do log somente às mensagens necessárias.

Registrar mensagens no script do seu servidor

Você pode gerar mensagens personalizadas no script do seu Amazon GameLift ServersRealtime. Use as etapas a seguir para enviar mensagens do servidor para um arquivo de log:

  1. Crie uma variável para manter a referência ao objeto logger.

    var logger;
  2. Na função de init(), obtenha o registrador do objeto de sessão e atribua-o à sua variável do registrador.

    function init(rtSession) { session = rtSession; logger = session.getLogger(); }
  3. Chame a função apropriada no registrador para gerar uma mensagem.

    Mensagens de depuração

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

    Mensagens informativas

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

    Mensagens de aviso

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

    Mensagens de erro

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

    Mensagens de erro fatais

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

    Mensagens de erro fatais da experiência do cliente

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

Para obter um exemplo das instruções de registro em um script, consulte Amazon GameLift ServersRealtimeexemplo de script.

A saída nos arquivos de log indica o tipo de mensagem (DEBUG,INFO,WARN,ERROR,FATAL,CXFATAL), conforme mostrado nas seguintes linhas de um exemplo de registro:

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.

Acessando logs do servidor

Quando uma sessão de jogo termina, armazena Amazon GameLift Servers automaticamente os registros no Amazon S3 e os retém por 14 dias. Você pode usar a chamada de GetGameSessionLogUrl API para obter a localização dos registros de uma sessão de jogo. Use o URL retornado pela chamada de API para baixar os registros.

Ajustar logs

Os troncos podem crescer muito rapidamente e exceder o limite de tamanho. Você deverá monitorar seus registros e limitar a saída do log somente às mensagens necessárias. Pois Amazon GameLift ServersRealtime, você pode ajustar o nível de registro fornecendo um parâmetro na configuração de tempo de execução da sua frota no formuláriologgingLevel:LOGGING_LEVEL, onde LOGGING_LEVEL está um dos seguintes valores:

  1. debug

  2. info (padrão)

  3. warn

  4. error

  5. fatal

  6. cxfatal

Essa lista está ordenada da menos severa (debug) à mais grave (cxfatal). Você define um único loggingLevel e o servidor só registrará mensagens nesse nível de gravidade ou em um nível de gravidade mais alto. Por exemplo, a configuração loggingLevel:error fará com que todos os servidores da sua frota apenas gravem error, fatal, e cxfatal mensagens ao log.

É possível definir o nível de registro da frota ao criá-lo ou depois que ele já existe. Alterar o nível de registro da sua frota após sua execução afetará apenas os registros das sessões de jogo criadas após a atualização. Os registros de qualquer sessão de jogo existente não serão afetados. Se você não definir um nível de registro ao criar sua frota, seus servidores definirão o nível de registro como padrão info. Consulte as seções a seguir para obter instruções sobre como definir o nível de registro.

Definir o nível de registro ao criar uma Amazon GameLift ServersRealtime frota (console)

Siga as instruções em Crie uma EC2 frota Amazon GameLift Servers gerenciada para criar sua frota, com a seguinte adição:

  • Na subetapa de Alocação de processos do servidor da etapa de Gerenciamento de processos, forneça o par de valores-chave do nível de registro (como loggingLevel:error) como um valor para os Parâmetros de inicialização. Use um caractere não alfanumérico (exceto vírgula) para separar o nível de registro de quaisquer parâmetros adicionais (por exemplo, loggingLevel:error +map Winter444).

Definindo o nível de registro ao criar uma Amazon GameLift ServersRealtime frota (AWS CLI)

Siga as instruções em Crie uma EC2 frota Amazon GameLift Servers gerenciada para criar sua frota, com a seguinte adição:

  • No argumento do parâmetro --runtime-configuration para create-fleet, forneça o par de valores-chave do nível de registro (como loggingLevel:error) como um valor para Parameters. Use um caractere não alfanumérico (exceto vírgula) para separar o nível de registro de quaisquer parâmetros adicionais. Veja o exemplo a seguir:

--runtime-configuration "GameSessionActivationTimeoutSeconds=60, MaxConcurrentGameSessionActivations=2, ServerProcesses=[{LaunchPath=/local/game/myRealtimeLaunchScript.js, Parameters=loggingLevel:error +map Winter444, ConcurrentExecutions=10}]"
Definindo o nível de registro para uma Amazon GameLift ServersRealtime frota em execução (console)

Siga as instruções em Atualizar uma configuração de Amazon GameLift Servers frota para atualizar sua frota usando o Amazon GameLift Servers console, com a seguinte adição:

  • Na página Editar frota, em Alocação de processos do servidor, forneça o par de valores-chave do nível de registro (como loggingLevel:error) como um valor para os Parâmetros de inicialização. Use um caractere não alfanumérico (exceto vírgula) para separar o nível de registro de quaisquer parâmetros adicionais (por exemplo,loggingLevel:error +map Winter444).

Definindo o nível de registro para uma Amazon GameLift ServersRealtime frota em execução (AWS CLI)

Siga as instruções em Atualizar uma configuração de Amazon GameLift Servers frota para atualizar sua frota usando o AWS CLI, com a seguinte adição:

  • No argumento do parâmetro --runtime-configuration para update-runtime-configuration, forneça o par de valores-chave do nível de registro (como loggingLevel:error) como um valor para Parameters. Use um caractere não alfanumérico (exceto vírgula) para separar o nível de registro de quaisquer parâmetros adicionais. Veja o exemplo a seguir:

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