Pencatatan pesan server (server khusus) - Amazon GameLift

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Pencatatan pesan server (server khusus)

Anda dapat menangkap pesan server khusus dari server GameLift kustom Amazon Anda dalam file log. Untuk mempelajari tentang logging untuk Server Realtime, lihatMencatat pesan server (Server Realtime).

penting

Ada batasan ukuran file log per sesi game (lihat GameLift titik akhir Amazon dan kuota di Referensi Umum AWS). Saat sesi permainan berakhir, Amazon GameLift mengunggah log server ke Amazon Simple Storage Service (Amazon S3). Amazon tidak GameLift akan mengunggah log yang melebihi batas. Log dapat tumbuh sangat cepat dan melebihi batas ukuran. Anda harus memantau log Anda dan membatasi output log hanya untuk pesan yang diperlukan.

Mengkonfigurasi logging untuk server kustom

Dengan server GameLift kustom Amazon, Anda menulis kode Anda sendiri untuk melakukan logging, yang Anda konfigurasikan sebagai bagian dari konfigurasi proses server Anda. Amazon GameLift menggunakan konfigurasi logging Anda untuk mengidentifikasi file yang harus diunggah ke Amazon S3 di akhir setiap sesi game.

Petunjuk berikut menunjukkan cara mengkonfigurasi logging menggunakan contoh kode yang disederhanakan:

C++
Untuk mengkonfigurasi logging (C ++)
  1. Buat vektor string yang merupakan jalur direktori ke file log server game.

    std::string serverLog("serverOut.log"); // Example server log file std::vector<std::string> logPaths; logPaths.push_back(serverLog);
  2. Berikan vektor Anda sebagai LogParametersProcessParametersobjek Anda.

    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. Berikan ProcessParametersobjek saat Anda memanggil ProcessReady().

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

Untuk contoh yang lebih lengkap, lihatProcessReady().

C#
Untuk mengkonfigurasi logging (C #)
  1. Buat daftar string yang merupakan jalur direktori ke file log server game.

    List<string> logPaths = new List<string>(); logPaths.Add("C:\\game\\serverOut.txt"); // Example of a log file that the game server writes
  2. Berikan daftar Anda sebagai LogParametersProcessParametersobjek Anda.

    var processReadyParameter = new ProcessParameters( this.OnGameSession, this.OnProcessTerminate, this.OnHealthCheck, this.OnGameSessionUpdate, port, new LogParameters(logPaths));
  3. Berikan ProcessParametersobjek saat Anda memanggil ProcessReady().

    var processReadyOutcome = GameLiftServerAPI.ProcessReady(processReadyParameter);

Untuk contoh yang lebih lengkap, lihatProcessReady().

Menulis ke log

File log Anda ada setelah proses server Anda dimulai. Anda dapat menulis ke log menggunakan metode apa pun untuk menulis ke file. Untuk menangkap semua output standar dan keluaran kesalahan server Anda, petakan ulang aliran output ke file log, seperti pada contoh berikut:

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

Mengakses log server

Ketika sesi permainan berakhir, Amazon GameLift secara otomatis menyimpan log di ember Amazon S3 dan menyimpannya selama 14 hari. Untuk mendapatkan lokasi log untuk sesi game, Anda dapat menggunakan operasi GetGameSessionLogUrlAPI. Untuk mengunduh log, gunakan URL yang dikembalikan operasi.