Utilisation des journaux pour les jeux en réseau
Les journaux client et serveur sont importants pour identifier et déboguer les problèmes liés au réseau. Bien que de nombreux journaux réseau correspondent à la catégorie LogNet, nous vous recommandons de consulter les catégories plus étroitement liées aux systèmes spécifiques afin de mieux cerner les problèmes survenus.
Désactivées par défaut, ces catégories proposent des niveaux de verbosité variables, qu'il vous faudra peut-être ajuster pour obtenir les informations concernant le comportement rencontré. La liste ci-dessous répertorie plusieurs catégories recommandées :
| Catégorie | Description |
|---|---|
LogNetTraffic | Lorsque cette variable de journal est réglée sur VeryVerbose, l'ensemble du trafic du réseau est consigné. |
LogNetPackageMap | Consigne des informations relatives à l'envoi, la réception et la prise en compte des NetGUID. |
LogNetVersion LogNetFastTArray
LogNetDormancy
LogRep LogRepTraffic | Consigne les informations relatives à la réplication de propriétés et aux fonctions RepNotify qui sont utilisées par FRepLayout et FObjectReplicator. |
LogRepProperties | Consigne les informations relatives à l'envoi et à la réception de propriétés répliquées. |
PacketHandlerLog | Consigne les informations sur le gestionnaire de paquets et ses composants. Ces composants ont leurs propres sous-catégories. Par exemple, LogDTLSHandler, OodleNetworkHandlerComponentLog et LogHandshake. |
LogDemo | Consigne des informations sur l'enregistrement et la lecture des rediffusions. Chaque diffuseur de rediffusion correspond à une catégorie de journal : LogLocalFileReplay, LogSaveGameReplay, LogNullReplay et LogMemoryReplay. |
Plusieurs méthodes permettent d'activer ces catégories de journal et de régler leur verbosité :
Argument de ligne de commande
Passez l'argument de ligne de commande LogCmds :
-LogCmds="<LOG_CATEGORY> <LOG_VERBOSITY>"Par exemple, pour définir LogNetTraffic sur VeryVerbose :
-LogCmds="LogNetTraffic VeryVerbose"Commande de console
Utilisez la commande de console Log :
Log <LOG_CATEGORY> <LOG_VERBOSITY>Par exemple, pour définir LogNetTraffic sur Verbose :
Log LogNetTraffic VerboseConfiguration du moteur
Définissez-les dans le fichier DefaultEngine.ini de votre projet :
[Core.Log]
<LOG_CATEGORY1>=<LOG_VERBOSITY1>
<LOG_CATEGORY2>=<LOG_VERBOSITY2>
...Par exemple, pour régler plusieurs catégories sur différentes verbosités :
[Core.Log]
LogNetPackageMap=Log
LogNetTraffic=Verbose
LogRep=VeryVerboseErreurs utiles
Quand vous consultez les journaux, la liste suivante peut vous aider à déterminer quel type d'erreur s'est produit.
UEngine::BroadcastNetworkFailure | S'affiche lorsqu'un pilote réseau rencontre une erreur majeure. La ligne de journal précise le type d'échec, la chaîne fautive et fournit la description du pilote réseau qui a rencontré l'erreur. Vous trouverez une liste des échecs réseau possibles avec de brèves descriptions dans l'énumération ENetworkFailure qui se trouve dans EngineBaseTypes.h. |
UNetConnection::Close | Description de la connexion qui se ferme. |
UActorChannel::Close | Cette catégorie LogNetTraffic comprend l'index du canal, l'acteur de ce canal et la raison de sa fermeture. Consultez les entrées de journal autour de ces lignes pour mieux comprendre pourquoi une connexion ou un canal d'acteur a été fermé. |
L'argument de ligne de commande -LogTrace=<PARTIAL_LOG_LINE> effectue des traces de pile à partir de chaînes partielles de message de journal. Par exemple : -LogTrace=UNetConnection::Close produira une trace de pile chaque fois que UNetConnection::Close s'affiche dans les journaux. L'argument de ligne de commande -DumpRPCs permet de décharger les RPC et leurs paramètres, ce qui peut être utile pour suivre ceux qui sont envoyés.
Pour les arguments LogTrace et DumpRPCs, NetcodeUnitTest doit être activé.