网络游戏的日志记录

关于网络游戏日志记录的概述。

Choose your operating system:

Windows

macOS

Linux

本页面的内容

网络游戏的日志记录

客户端服务器 日志对于识别和调试网络问题很重要。虽然许多网络日志属于 LogNet 类别,但我们建议检查与特定系统更密切相关的日志类别,以便更深入地了解问题。

这些类别默认情况下未启用,并且具有不同的冗长度,你可能需要调整,从而获取有关你正在经历的行为的信息。下面的列表提供了一些推荐的类别:

类别

说明

LogNetTraffic

当此日志变量设置为VeryVerbose时,记录所有网络流量。

LogNetPackageMap

记录关于如何发送、接收和确认NetGUID的信息。

**LogNetVersion

LogNetFastTArray LogNetDormancy LogRep和LogRepTraffic | 记录关于FRepLayout和FObjectReplicator使用的属性复制和RepNotify函数的信息。| | LogRepProperties | 记录关于发送和接收复制属性的信息。| | PacketHandlerLog | 记录关于数据包处理程序及其组件的信息。这些组件有自己的子类别。例如LogDTLSHandler、OodleNetworkHandlerComponentLog和LogHandshake。| | LogDemo** | 记录关于录制和播放的信息。每个回放流送器都有相关的日志类别:LogLocalFileReplay、LogSaveGameReplay、LogNullReplay和LogMemoryReplay。|

你可以启用这些类别并调整其冗长度,方法是传入命令行参数:

-LogCmds=<LogCategory><Log Verbosity>

使用控制台命令日志:

<Log Category> <Log Verbosity>,

或在项目的 DefaultEngine.ini. 中设置,例如

[Core.Log]

LogNetPackageMap=Log

LogNetTraffic=Verbose

LogRep=VeryVerbose

读取日志时,以下列表可用于确定发生的错误类型。

UEngine::BroadcastNetworkFailure

当网络驱动程序遇到一些重大错误时打印。日志行将包括失败类型、错误字符串和关于出现错误的网络驱动程序的描述。你可以在EngineBaseTypes.h的ENetworkFailure枚举中查看可能的网络故障列表和简要说明。

UNetConnection::Close

关于正在关闭的连接的描述。

UActorChannel::Close

LogNetTraffic类别将包括通道索引、该通道的Actor及其关闭原因。检查有关这些行的日志有助于提供有关连接或Actor通道关闭原因的一些指示。

命令行参数 -LogTrace=<partial log line> 将从部分日志消息字符串执行堆栈追踪。例如:-LogTrace=UNetConnection::Close 会在每次将 UNetConnection::Close 打印到日志时生成堆栈追踪。命令行参数 -DumpRPCs 将提供转储RPC及其参数的功能,这对于跟踪正在发送的RPC及其参数很有用。

LogTrace和DumpRPCs都需要启用 NetcodeUnitTest

本文基于此前的虚幻引擎版本编写,未针对当前的虚幻引擎5.0版本更新过。