Messaggi del server di registrazione (server personalizzati) - Amazon GameLift

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Messaggi del server di registrazione (server personalizzati)

Puoi acquisire messaggi server personalizzati dai tuoi server Amazon GameLift personalizzati in file di registro. Per ulteriori informazioni sulla registrazione per i server in tempo reale, consulta. Messaggi del server di registrazione (Realtime Servers)

Importante

Esiste un limite alla dimensione di un file di registro per sessione di gioco (consulta gli GameLift endpoint e le quote di Amazon nel Riferimenti generali di AWS). Al termine di una sessione di gioco, Amazon GameLift carica i log del server su Amazon Simple Storage Service (Amazon S3). Amazon non GameLift caricherà log che superano il limite. I log possono crescere molto rapidamente e superare il limite di dimensione. È necessario monitorare i log e limitare l'output dei log ai soli messaggi necessari.

Configurazione della registrazione per server personalizzati

Con i server GameLift personalizzati Amazon, scrivi il tuo codice per eseguire la registrazione, che configuri come parte della configurazione del processo del server. Amazon GameLift utilizza la tua configurazione di registrazione per identificare i file da caricare su Amazon S3 al termine di ogni sessione di gioco.

Le seguenti istruzioni mostrano come configurare la registrazione utilizzando esempi di codice semplificati:

C++
Per configurare la registrazione (C++)
  1. Crea un vettore di stringhe che siano percorsi di directory verso i file di registro del server di gioco.

    std::string serverLog("serverOut.log"); // Example server log file std::vector<std::string> logPaths; logPaths.push_back(serverLog);
  2. Fornisci il tuo vettore come immagine LogParametersdel tuo oggetto. ProcessParameters

    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. Fornisci l'ProcessParametersoggetto quando chiami ProcessReady().

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

Per un esempio più completo, vediProcessReady().

C#
Per configurare la registrazione (C#)
  1. Crea un elenco di stringhe che sono percorsi di directory verso i file di registro del server di gioco.

    List<string> logPaths = new List<string>(); logPaths.Add("C:\\game\\serverOut.txt"); // Example of a log file that the game server writes
  2. Fornisci la tua lista come ProcessParametersoggetto. LogParameters

    var processReadyParameter = new ProcessParameters( this.OnGameSession, this.OnProcessTerminate, this.OnHealthCheck, this.OnGameSessionUpdate, port, new LogParameters(logPaths));
  3. Fornisci l'ProcessParametersoggetto quando chiami ProcessReady().

    var processReadyOutcome = GameLiftServerAPI.ProcessReady(processReadyParameter);

Per un esempio più completo, vediProcessReady().

Scrittura nei log

I file di registro esistono dopo l'avvio del processo del server. È possibile scrivere nei log utilizzando qualsiasi metodo di scrittura sui file. Per acquisire tutti gli output standard e gli output di errore del server, rimappa i flussi di output nei file di registro, come negli esempi seguenti:

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

Accesso ai log del server

Al termine di una sessione di gioco, Amazon archivia GameLift automaticamente i log in un bucket Amazon S3 e li conserva per 14 giorni. Per ottenere la posizione dei log di una sessione di gioco, puoi utilizzare l'operazione API. GetGameSessionLogUrl Per scaricare i log, utilizza l'URL restituito dall'operazione.