ネットワーク ゲームのログ出力
クライアント ログおよび サーバー ログは、ネットワークの問題を特定し、デバッグするうえで欠かせません。ネットワーク ログは、多くの場合、LogNet カテゴリに分類されますが、問題の詳細を把握するためには、特定のシステムにより緊密に関連するログ カテゴリを確認することをお勧めします。
これらのカテゴリはデフォルトでは有効になっていません。また、発生している動作に関する情報を取得するために調整が必要な詳細レベルも異なります。次のリストに、推奨するカテゴリを示します。
カテゴリ | 説明 |
---|---|
LogNetTraffic | 当該ログ変数が VeryVerbose に設定されている場合、すべてのネットワーク トラフィックをログに記録します。 |
LogNetPackageMap | NetGUID が送信、受信、および確認される方法に関連する情報をログに記録します。 |
LogNetVersion | FRepLayout および FObjectReplicator によって使用される Property Replication 関数および RepNotify 関数に関連する情報をログに記録します。 |
LogNetFastTArray | ^ |
LogNetDormancy | ^ |
LogRep | ^ |
LogRepTraffic | ^ |
LogRepProperties | レプリケートされたプロパティの送受信に関連する情報をログに記録します。 |
PacketHandlerLog | パケット ハンドラとパケット ハンドラのコンポーネントに関する情報をログに記録します。これらのコンポーネントには、独自のサブカテゴリがあります。例として、LogDTLSHandler、OodleNetworkHandlerComponentLog、および LogHandshake が挙げられます。 |
LogDemo | リプレイのレコーディングと再生に関する情報をログに記録します。各リプレイ ストリーマーには、関連するログ カテゴリ (LogLocalFileReplay、LogSaveGameReplay、LogNullReplay、および LogMemoryReplay) があります。 |
これらのログ カテゴリを有効にして詳細レベルを調整するには、次の方法を使用します。
コマンドライン引数
LogCmds
コマンドライン引数を渡します。
-LogCmds="<LOG_CATEGORY> <LOG_VERBOSITY>"
たとえば、次のようにして LogNetTraffic
を VeryVerbose
に設定します。
-LogCmds="LogNetTraffic VeryVerbose"
コンソール コマンド
Log
コンソール コマンドを使用します。
Log <LOG_CATEGORY> <LOG_VERBOSITY>
たとえば、次のようにして LogNetTraffic
を Verbose
に設定します。
Log LogNetTraffic Verbose
エンジンの構成
プロジェクトの DefaultEngine.ini.
で設定します。
[Core.Log]
<LOG_CATEGORY1>=<LOG_VERBOSITY1>
<LOG_CATEGORY2>=<LOG_VERBOSITY2>
...
たとえば、次のようにして複数のカテゴリをさまざまな詳細度に設定します。
[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 を有効にする必要があります。