サーバーメッセージのログ記録 (リアルタイムサーバー) - Amazon GameLift

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

サーバーメッセージのログ記録 (リアルタイムサーバー)

リアルタイムアーバーからのカスタムサーバーメッセージをログファイルにキャプチャできます。カスタムサーバーのログ記録については、「サーバーメッセージのログ記録 (カスタムサーバー)」を参照してください。

ログファイルに出力できるメッセージにはさまざまな種類があります (サーバースクリプトでのメッセージのログ記録 を参照)。リアルタイムサーバーは、カスタムメッセージに加えて、同じメッセージタイプを使用してシステムメッセージを出力し、同じログファイルに書き込みます。フリートのログ記録レベルを調整して、サーバーが生成するログ記録メッセージの量を減らすことができます (ログ記録のレベルの調整 を参照)。

重要

ゲームセッションあたりのログファイルのサイズには制限があります (「」の「Amazon GameLift エンドポイントとクォータ」を参照AWS 全般のリファレンス)。ゲームセッションが終了すると、Amazon はサーバーログを Amazon Simple Storage Service (Amazon S3 GameLift ) にアップロードします。Amazon GameLift は、制限を超えるログをアップロードしません。ログは急速に大きくなり、サイズ制限を超えることがあります。ログをモニタリングして、ログ出力を必要なメッセージのみに制限する必要があります。

サーバースクリプトでのメッセージのログ記録

リアルタイムサーバーのスクリプトにカスタムメッセージを出力できます。以下の手順でサーバーメッセージをログファイルに送信します。

  1. ロガーオブジェクトへの参照を保持する変数を作成します。

    var logger;
  2. init() 関数では、セッションオブジェクトからロガーを取得し、ロガー変数に割り当てます。

    function init(rtSession) { session = rtSession; logger = session.getLogger(); }
  3. ロガーの適切な関数を呼び出してメッセージを出力します。

    デバッグメッセージ

    logger.debug("This is my debug message...");

    情報メッセージ

    logger.info("This is my info message...");

    警告メッセージ

    logger.warn("This is my warn message...");

    エラーメッセージ

    logger.error("This is my error message...");

    致命的なエラーメッセージ

    logger.fatal("This is my fatal error message...");

    カスタマーエクスペリエンスに関する致命的なエラーメッセージ

    logger.cxfatal("This is my customer experience fatal error message...");

スクリプト内のログ記録ステートメントの例については、「リアルタイムサーバースクリプト例」を参照してください。

ログファイルの出力には、サンプルログの次の行に示すように、メッセージのタイプ (DEBUGINFOWARNERRORFATALCXFATAL) が示されています。

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.

サーバーログへのアクセス

ゲームセッションが終了すると、Amazon GameLift は自動的にログを Amazon S3 に保存し、14 日間保持します。GetGameSessionLogUrl API コールを使用して、ゲームセッションのログの場所を取得できます。API コールによって返された URL を使用してログをダウンロードします。

ログ記録のレベルの調整

ログは急速に大きくなり、サイズ制限を超えることがあります。ログをモニタリングして、ログ出力を必要なメッセージのみに制限する必要があります。リアルタイムサーバーでは、フリートのランタイム設定にパラメーターを loggingLevel:LOGGING_LEVEL フォームに入力することでログ記録レベルを調整できます。ここで、LOGGING_LEVEL は次のいずれかの値を指定します。

  1. debug

  2. info (デフォルト)

  3. warn

  4. error

  5. fatal

  6. cxfatal

このリストは、最も重大度が低い (debug) から最も重大度が高い (cxfatal) の順になっています。1 つの loggingLevel を設定すると、サーバーはその重要度レベル以上のメッセージのみをログに記録します。例えば、loggingLevel:error を設定すると、フリート内のすべてのサーバーがログに errorfatalcxfatal メッセージのみを書き込むようになります。

フリートのログ記録レベルは、フリートの作成時または実行後に設定できます。実行後にフリートのログ記録レベルを変更しても、更新後に作成されたゲームセッションのログにのみ影響します。既存のゲームセッションのログには影響しません。フリートの作成時にログ記録レベルを設定しない場合、サーバーはログ記録レベルをデフォルトで info に設定します。ログ記録レベルを設定する手順については、次のセクションを参照してください。

リアルタイムサーバーフリートを作成する際のログ記録レベルの設定 (コンソール)

Amazon GameLift マネージドフリートを作成する に記載されている手順に従ってフリートを作成します。さらに、以下を行います。

  • [プロセス管理] ステップの [サーバープロセス割り当て] サブステップで、[起動パラメータ] の値としてログ記録レベルのキーと値のペア (loggingLevel:error など) を指定します。英数字以外の文字 (カンマを除く) を使用して、ログ記録レベルと追加のパラメータを区切ります (loggingLevel:error +map Winter444 など)。

リアルタイムサーバーフリートを作成する際のログ記録レベルの設定 (AWS CLI)

Amazon GameLift マネージドフリートを作成する に記載されている手順に従ってフリートを作成します。さらに、以下を行います。

  • create-fleet--runtime-configuration パラメータの引数に、Parameters の値としてログ記録レベルのキーと値のペア (loggingLevel:error など) を指定します。英数字以外の文字 (カンマを除く) を使用して、ログ記録レベルと追加のパラメータを区切ります。次の例を参照してください。

--runtime-configuration "GameSessionActivationTimeoutSeconds=60, MaxConcurrentGameSessionActivations=2, ServerProcesses=[{LaunchPath=/local/game/myRealtimeLaunchScript.js, Parameters=loggingLevel:error +map Winter444, ConcurrentExecutions=10}]"
実行中のリアルタイムサーバーフリートのログ記録レベルの設定 (コンソール)

「」の手順に従ってフリート設定を更新する、Amazon GameLift コンソールを使用してフリートを更新し、以下を追加します。

  • [フリートの編集] ページの [サーバープロセス割り当て] で、[起動パラメータ] の値としてログ記録レベルのキーと値のペア (loggingLevel:error など) を指定します。英数字以外の文字 (カンマを除く) を使用して、ログ記録レベルと追加のパラメータを区切ります (loggingLevel:error +map Winter444 など)。

実行中のリアルタイムサーバーフリートのログ記録レベルの設定 (AWS CLI)

フリート設定を更新する に記載されている手順に従って、AWS CLI を使用してフリートを更新します。さらに、以下も行います。

  • update-runtime-configuration--runtime-configuration パラメータの引数に、Parameters の値としてログ記録レベルのキーと値のペア (loggingLevel:error など) を指定します。英数字以外の文字 (カンマを除く) を使用して、ログ記録レベルと追加のパラメータを区切ります。次の例を参照してください。

--runtime-configuration "GameSessionActivationTimeoutSeconds=60, MaxConcurrentGameSessionActivations=2, ServerProcesses=[{LaunchPath=/local/game/myRealtimeLaunchScript.js, Parameters=loggingLevel:error +map Winter444, ConcurrentExecutions=10}]"