Registro para juegos en red
Los registros de cliente y servidor son importantes para identificar y depurar los problemas de red. Aunque muchos registros de red entran en la categoría LogNet, recomendamos comprobar las categorías de registro que están más estrechamente relacionadas con sistemas específicos para comprender mejor cualquier problema.
Estas categorías no están activas por defecto y disponen de diferentes niveles de detalle que podrías tener que ajustar para obtener información sobre el comportamiento que estás experimentando. La siguiente lista ofrece algunas categorías recomendadas:
| Categoría | Descripción |
|---|---|
LogNetTraffic | Registra todo el tráfico de red cuando esta variable de registro se establece como VeryVerbose. |
LogNetPackageMap | Registra información relacionada con el envío, la recepción y el acuse de recibo de NetGUIDs. |
LogNetVersion LogNetFastTArray
LogNetDormancy
LogRep LogRepTraffic | Registra información relacionada con las funciones *Property Replication* y *RepNotify* que usan *FRepLayout* y *FObjectReplicator*. |
LogRepProperties | Registra la información relacionada con el envío y la recepción de propiedades replicadas. |
PacketHandlerLog | Registra información sobre el controlador de paquetes y sus componentes. Estos componentes tienen sus propias subcategorías. Por ejemplo, *LogDTLSHandler*, *OodleNetworkHandlerComponentLog* y *LogHandshake*. |
LogDemo | Registra información sobre la grabación y reproducción de repeticiones. Cada transmisor de repetición tiene una categoría de registro relacionada: LogLocalFileReplay, LogSaveGameReplay, LogNullReplay y LogMemoryReplay. |
Puedes activar estas categorías de registro y ajustar su verbosidad mediante los siguientes métodos:
Argumento de la línea de comandos
Pasa el argumento de la línea de comandos LogCmds:
-LogCmds="<LOG_CATEGORY> <LOG_VERBOSITY>"Por ejemplo, para establecer LogNetTraffic como VeryVerbose:
-LogCmds="LogNetTraffic VeryVerbose"Comando de consola
Utiliza el comando de consola Log:
Log <LOG_CATEGORY> <LOG_VERBOSITY>Por ejemplo, para configurar LogNetTraffic como Verbose:
Log LogNetTraffic VerboseConfiguración del motor
Establécelos en el DefaultEngine.ini de tu proyecto:
[Core.Log]
<LOG_CATEGORY1>=<LOG_VERBOSITY1>
<LOG_CATEGORY2>=<LOG_VERBOSITY2>
...Por ejemplo, para establecer varias categorías con diferentes verbosidades:
[Core.Log]
LogNetPackageMap=Log
LogNetTraffic=Verbose
LogRep=VeryVerboseErrores útiles
Al leer los registros, la siguiente lista puede ser útil para determinar qué tipo de error se ha producido.
UEngine::BroadcastNetworkFailure | Se imprime cuando un controlador de red encuentra algún error importante. La línea de registro incluirá el tipo de fallo, la cadena de error y la descripción del controlador de red que encontró el error. Puedes ver una lista de los posibles fallos de red con breves descripciones en el enunciado *ENetworkFailure* de *EngineBaseTypes.h*. |
UNetConnection::Close | Descripción de la conexión que se cierra. |
UActorChannel::Close | Una categoría de *LogNetTraffic* que incluirá el índice del canal, el actor correspondiente para ese canal y la razón por la que se cerró. Comprobar los registros en torno a estas líneas puede ayudar a entender por qué se cerró una conexión o un canal de actor. |
El argumento de línea de comandos -LogTrace=<PARTIAL_LOG_LINE> realiza trazas de pila a partir de cadenas parciales de mensajes de registro. Por ejemplo: -LogTrace=UNetConnection::Close producirá una traza de pila siempre que UNetConnection::Close se imprima en los registros. El argumento de línea de comandos -DumpRPCs permite volcar peticiones del procedimiento en remoto (RPC) y sus parámetros, lo que puede ser útil para rastrear qué RPC se están enviando y cuáles son sus parámetros.
Tanto LogTrace como DumpRPCs requieren que NetcodeUnitTest esté activado.