Registrando mensagens do servidor (servidores em tempo real) - 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á.

Registrando mensagens do servidor (servidores em tempo real)

Você pode capturar mensagens personalizadas do servidor de seus servidores em tempo real em 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, seus servidores em tempo real emitem mensagens do sistema usando os mesmos tipos de mensagem 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 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ê 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 para seus servidores em tempo real. 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 Exemplo de script de servidores em tempo real.

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, a Amazon armazena GameLift 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. Para servidores em tempo real, você poderá ajustar o nível de registro fornecendo um parâmetro na configuração de runtime da sua frota no formulário loggingLevel: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.

Definindo o nível de registro ao criar uma frota de servidores em tempo real (console)

Siga as instruções em Criar uma frota gerenciada pelo Amazon GameLift 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 frota de servidores em tempo real (AWS CLI)

Siga as instruções em Criar uma frota gerenciada pelo Amazon GameLift 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 frota de servidores em tempo real em execução (console)

Siga as instruções em Atualizar uma configuração de frota para atualizar sua frota usando o Amazon GameLift 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 frota de servidores em tempo real em execução (AWS CLI)

Siga as instruções em Atualizar uma configuração de 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}]"