ネットワーク ゲームのログ出力
クライアント ログおよび サーバー ログは、ネットワークの問題を特定し、デバッグするうえで欠かせません。ネットワーク ログは、多くの場合、LogNet カテゴリに分類されますが、問題の詳細を把握するためには、特定のシステムにより緊密に関連するログ カテゴリを確認することをお勧めします。
これらのカテゴリはデフォルトでは有効になっていません。また、発生している動作に関する情報を取得するために調整が必要な詳細レベルも異なります。次のリストに、推奨するカテゴリを示します。
カテゴリ | 説明 |
---|---|
LogNetTraffic | 当該ログ変数が VeryVerbose に設定されている場合、すべてのネットワーク トラフィックをログに記録します。 |
LogNetPackageMap | NetGUID が送信、受信、および確認される方法に関連する情報をログに記録します。 |
LogNetVersion | FRepLayout および FObjectReplicator で使用されるプロパティ レプリケーションおよび RepNotify 関数に関連する情報をログに記録します。 |
LogNetFastTArray | ^ |
LogNetDormancy | ^ |
LogRep | ^ |
LogRepTraffic | ^ |
LogRepProperties | レプリケートされたプロパティの送受信に関連する情報をログに記録します。 |
PacketHandlerLog | パケット ハンドラとパケット ハンドラのコンポーネントに関する情報をログに記録します。これらのコンポーネントには、独自のサブカテゴリがあります。例として、LogDTLSHandler、OodleNetworkHandlerComponentLog、および LogHandshake が挙げられます。 |
LogDemo | リプレイのレコーディングと再生に関する情報をログに記録します。各リプレイ ストリーマーに、関連するログ カテゴリ (LogLocalFileReplay、LogSaveGameReplay、LogNullReplay およびLogMemoryReplay) があります。 |
これらのカテゴリを有効にして、詳細レベルを調整するには、次のいずれかの方法を使用します。次のコマンドライン引数を渡します。
-LogCmds=<LogCategory><Log Verbosity>
Log コンソール コマンドを使用します。
<Log Category> <Log Verbosity>,
プロジェクトの「DefaultEngine.ini.
」で該当する設定を行います。例を示します。
[Core.Log]
LogNetPackageMap=Log
LogNetTraffic=Verbose
LogRep=VeryVerbose
ログを読み取る際は、次のリストを使用すると、発生したエラーの種類を特定するうえで役立ちます。
UEngine::BroadcastNetworkFailure | ネット ドライバで重大なエラーが発生した場合に出力されます。ログ行には、エラーの種類、エラー文字列、エラーが発生したネット ドライバの説明が記載されています。EngineBaseTypes.h の ENetworkFailure 列挙型には、発生した可能性のあるネットワーク エラーのリストとその簡潔な説明が記載されています。 |
UNetConnection::Close | 接続が閉じたことを説明しています。 |
UActorChannel::Close | LogNetTraffic カテゴリ。チャンネル インデックス、そのチャネルのアクタ、および閉じた理由が含まれています。ログでこれらの行の周りを確認することで、接続やアクタ チャンネルが閉じた理由の確認に役立ちます。 |
コマンドライン引数 -LogTrace=<partial log line>
は、部分的なログ メッセージ文字列からスタック トレースを実行します。次に例を示します。-LogTrace=UNetConnection::Close
を指定すると、UNetConnection::Close
がログに出力されるたびにスタック トレースが生成されます。コマンドライン引数 DumpRPCs
は、RPC と RPC のパラメータをダンプする機能を提供します。この機能は、送信されている RPC のタイプとそのパラメータを追跡するうえで役立ちます。
LogTrace および DumpRPCs はどちらも NetcodeUnitTest を有効にする必要があります。