Pencatatan pesan server (server khusus) - Amazon GameLift Servers

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 kustom dari server Amazon GameLift Servers kustom Anda dalam file log. Untuk mempelajari tentang pencatatan Amazon GameLift ServersRealtime, lihatPencatatan pesan server (Amazon GameLift ServersRealtime).

penting

Ada batasan ukuran file log per sesi game (lihat Amazon GameLift Serverstitik akhir dan kuota di Referensi Umum AWS). Saat sesi game berakhir, Amazon GameLift Servers unggah log server ke Amazon Simple Storage Service (Amazon S3). Amazon GameLift Serverstidak 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 Amazon GameLift Servers kustom, Anda menulis kode Anda sendiri untuk melakukan logging, yang Anda konfigurasikan sebagai bagian dari konfigurasi proses server Anda. Amazon GameLift Serversmenggunakan konfigurasi logging Anda untuk mengidentifikasi file yang harus diunggah ke S3 di akhir setiap sesi permainan.

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

Akses log bervariasi menurut jenis armada:

Armada yang EC2 dikelola

Ketika sesi permainan berakhir, Amazon GameLift Servers secara otomatis menyimpan log dalam ember 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.

Atau, Anda dapat mengatur solusi logging Anda sendiri dengan mengonfigurasi server game Anda untuk mengirim log langsung ke layanan pencatatan atau lokasi penyimpanan pilihan Anda. Untuk informasi selengkapnya, lihat Berkomunikasi dengan AWS sumber daya lain dari armada Anda.

Armada kontainer

Armada kontainer menangkap output standar dan aliran kesalahan dari semua kontainer. Anda dapat mengonfigurasi logging menggunakan salah satu opsi ini:

  • Simpan output kontainer sebagai aliran CloudWatch log dalam grup log tertentu

  • Simpan output kontainer ke ember penyimpanan S3

  • Matikan logging (keluaran kontainer tidak disimpan)

Untuk informasi mendetail tentang mengonfigurasi opsi logging saat membuat armada kontainer, lihat LogConfigurationdi Referensi Amazon GameLift Servers API.