Bonjour,
Je m'amuse à trafiquer le client 2.45.6:1 et je souhaite activer le logging du client de jeu avec deux targets :
- Le target fichier habituel: com.ankamagames.jerakine.logger.targets.FileTarget
- Le target "Chacha server": com.ankamagames.jerakine.logger.targets.CentralizeTarget
Rien de bien compliqué jusque là. Voici mon log4as.xml correspondant :
<logging>
<targets>
<target module="com.ankamagames.jerakine.logger.targets.FileTarget" />
<target module="com.ankamagames.jerakine.logger.targets.CentralizeTarget" />
</targets>
</logging>
Ça fonctionne plutôt bien : le fichier de logs est créé et je reçois des données sur mon serveur de logs (chacha.ankama.lan:6666 que j'ai redirigé sur 127.0.0.1:6666).
Cependant, sur le target "Chacha server", le client de jeu n'envoie que les logs jusqu'à "(DEBUG) [RegConnectionManager] init socket" qui correspond au tout début de l'initialisation du client, alors que les logs sont complets dans le fichier.
Je me suis assuré que c'était bien le client qui n'envoyait rien (en sniffant avec Wireshark) et non pas mon serveur qui lisait mal.
J'ai alors patché le client pour rajouter un _socket.flush(); après chaque _socket.writeUTF(); (ligne 37 dans com.ankamagames.jerakine.logger.targets.CentralizeTarget) et... magie, tout s'envoie correctement !
Cependant, je doute que ce soit un bug du client... je pense qu'il doit y avoir un moyen de trigger le flush (peut-être avec un raccourci clavier ?) : mais comment !?
J'ai cherché longuement mais je n'ai rien trouvé, alors je m'en remets à vous... comment puis-je flusher les logs vers mon serveur Chacha sans patcher le client ?
Merci !