

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)
<a name="logging-server-messages-custom"></a>

Você pode capturar mensagens personalizadas do servidor de seus servidores Amazon GameLift Servers personalizados em arquivos de log.

**Importante**  
Há um limite no tamanho de um arquivo de log por sessão de jogo (consulte os [Endpoints e cotas do Amazon GameLift Servers](https://docs.aws.amazon.com/general/latest/gr/gamelift.html) no *Referência geral da AWS*). Quando uma sessão de jogo termina, o Amazon GameLift Servers carrega logs do servidor para o Amazon Simple Storage Service (Amazon S3). O Amazon GameLift Servers não 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
<a name="configuring-logging-for-custom-servers"></a>

Com os servidores personalizados do Amazon GameLift Servers, você escreve seu próprio código para realizar o registro, que você configura como parte da configuração do processo do servidor. O Amazon GameLift Servers usa 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);
   ```

1. Forneça seu vetor como o [LogParameters](integration-server-sdk-cpp-ref-datatypes.md#integration-server-sdk-cpp-ref-dataypes-log)do seu [ProcessParameters](integration-server-sdk-cpp-ref-datatypes.md#integration-server-sdk-cpp-ref-dataypes-process)objeto.

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

1. Forneça o [ProcessParameters](integration-server-sdk-cpp-ref-datatypes.md#integration-server-sdk-cpp-ref-dataypes-process)objeto ao chamar [ProcessReady()](integration-server-sdk-cpp-ref-actions.md#integration-server-sdk-cpp-ref-processready).

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

Para um exemplo mais completo, consulte [ProcessReady()](integration-server-sdk-cpp-ref-actions.md#integration-server-sdk-cpp-ref-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
   ```

1. Forneça sua lista como a [LogParameters](integration-server-sdk-csharp-ref-datatypes.md#integration-server-sdk-csharp-ref-dataypes-log)do seu [ProcessParameters](integration-server-sdk-csharp-ref-datatypes.md#integration-server-sdk-csharp-ref-dataypes-process)objeto.

   ```
   var processReadyParameter = new ProcessParameters(
       this.OnGameSession,
       this.OnProcessTerminate,
       this.OnHealthCheck,
       this.OnGameSessionUpdate,
       port,
       new LogParameters(logPaths));
   ```

1. Forneça o [ProcessParameters](integration-server-sdk-csharp-ref-datatypes.md#integration-server-sdk-csharp-ref-dataypes-process)objeto ao chamar [ProcessReady()](integration-server-sdk-csharp-ref-actions.md#integration-server-sdk-csharp-ref-processready).

   ```
   var processReadyOutcome =
      GameLiftServerAPI.ProcessReady(processReadyParameter);
   ```

Para um exemplo mais completo, consulte [ProcessReady()](integration-server-sdk-csharp-ref-actions.md#integration-server-sdk-csharp-ref-processready).

------

## Gravar em registros
<a name="writing-to-logs-for-custom-servers"></a>

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
<a name="accessing-logs-for-custom-servers"></a>

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

### Frotas EC2 gerenciadas
<a name="accessing-logs-managed-ec2"></a>

Quando uma sessão de jogo termina, o Amazon GameLift Servers armazena automaticamente os logs 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 [GetGameSessionLogUrl](https://docs.aws.amazon.com/gamelift/latest/apireference/API_GetGameSessionLogUrl.html)API. 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 [Conecte seu servidor de jogos Amazon GameLift Servers hospedado a outros AWS recursos](gamelift-sdk-server-resources.md).

### Frotas de contêineres
<a name="accessing-logs-containers"></a>

As frotas de contêineres capturam streams de saída padrão e erros de todos os contêineres. Você pode configurar o log usando uma das seguintes opções:
+ Salve a saída do contêiner como fluxos de CloudWatch log em um grupo de registros especificado
+ Salvar 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 [LogConfiguration](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_CreateContainerFleet.html#gameliftservers-CreateContainerFleet-request-LogConfiguration)Referência da Amazon GameLift Servers API.