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