YOUR CREATIONS & GUIDES


Analyseur de log en bash et python

[FR] Salut à toutes !

Il y a déjà divers analyseurs pour les logs ici et là. Je voulais gérer les miens avec bash. Ça a été l'occasion d'apprendre aussi à mieux maitriser ce dernier. Aujourd'hui cela me semble assez abouti pour le partager. Rien de transcendant, il y a probablement des façons plus élégantes de faire cela, mais si ça peut aider d'autres !

Merci à Siela1915 d'avoir utilisé la première version du script pour en faire une version python avec une interface graphique.

Qu'est-ce que c'est exactement ?

Sur Ryzom, vous pouvez garder une trace de tout ce qui est dit en jeu quand vous êtes connectés. Il faut pour cela activer la commande /chatlog sur votre personnage (et répéter ça sur chaque perso). Ensuite, cela remplira un fichier du type "log_NOM_DU_PERSO.txt" dans votre dossier "save". Voir https://fr.wiki.ryzom.com/wiki/Chat pour plus d'infos.

Le souci c'est que ce fichier mélange tous les canaux, y compris le sys.infos, et grossit au fil du temps jusqu'à ne plus être ouvrable par votre éditeur de texte favori. Pas très pratique comme ça.

Il existe donc des analyseurs, qui permettent d'extraire les canaux utiles. Par exemple ce qui s'est dit en "Alentours" afin de relire vos folles soirées RP. Mais on peut aussi extraire uniquement les discussions en MP avec une personne précise, ou le résultat de combats pour faire des analyses statistiques.

Mon analyseur découpe ce fichier brut en plusieurs, un par jour. Cela me permet par la suite de filtrer quand je cherche une info, sans chercher sur 10 ans d'archives. Il range tout ça par année et par mois. Puis il nettoie ces logs pour ne garder (par défaut) que ce qui est dit en alentours, ainsi que les indications de zone. De cette façon je sais où on était et je retrouve les histoires qu'on a vécu.

Il y a possibilité de l'adapter aux besoins, bien évidement. Il suffit de modifier selon les indications dans le script.

À noter qu'il y a le script pour les logs d'aujourd'hui (clean_log.sh) mais aussi de quoi analyser un ancien format des logs, ceux d'avant 2013 (analyse_old_logryzom.sh associé à sysinfo.ini). Vous pouvez ne télécharger que clean_log.sh, il se suffit à lui-même.

Du bash ? C'est quoi ce .sh ?

Un truc de nerd. Sous linux, la ligne de commande est tellement fabuleuse ! Il devrait fonctionner tel quel sous toutes les distributions linux ; pour les autres systèmes, je ne maitrise pas et cela demandera plus de manipulations.

Pas besoin d'être un as pour faire marcher le script, cependant (tant que vous êtes sous linux). Assurez-vous qu'il soit exécutable, ouvrez une console dans le dossier et faites la commande :
./clean_log.sh

Et ça devrait être assez clair. J'espère.

Pour le télécharger, c'est ici :
https://git.khaganat.net/zatalyz/ryzom_log_cleaner/-/tree/main

Du python ?

La console, tout le monde n'est pas fan, et puis ça semble ne pas être simple à faire marcher sous Mac. Aussi Siela1915 a fabriqué une interface graphique à partir de tout ceci, qui fonctionne sur Mac. Il a fait ça sur une des versions précédentes de mes tests. Ça marche suffisamment pour que mes amies m'envoient aussi leurs soirées.

Par contre je n'ai pas noté comment cela se lance facilement sous Mac. Je compléterais si je retrouve, ou avec vos infos.

Cette version est sur une autre branche. Vous pouvez le télécharger ici :

https://git.khaganat.net/zatalyz/ryzom_log_cleaner/-/tree/python- version

Pourquoi en français ?

C'est la seule langue que je parle correctement et à la base ce script était "juste pour moi". Les commentaires sont verbeux, mais je crois qu'on s'en passe facilement si on connaît le code. Si vous souhaitez traduire, je serais ravie d'intégrer vos propositions. Cependant ça ne me semble pas vital : il y a déjà d'autres analyseurs, ce script n'est pas un truc révolutionnaire non plus.

Il y a un bug, ça ne marche pas, je ne sais pas comment faire...

C'est fourni "comme ça". Vous pouvez ouvrir un rapport de bug ou m'envoyer un message mais je ne vous garantis pas que je pourrais y faire quoi que ce soit. Je ne suis pas développeuse, ceci est une expérience, et ça marche assez pour mon usage, c'est déjà pas mal ;)

Je vois tellement de trucs à améliorer !

Super :)

La licence est aussi permissive que possible, sentez-vous libre de faire ce que vous voulez du code. Si en plus vous le repartagez ensuite (sur vos dépôts ou en ouvrant des branches et des merges request sur le mien), c'est encore plus génial ! J'intégrerais dans "main" ce qui peut l'améliorer, tant que ça ne rends pas le code moins lisible par une "noob". Oui, awks est plus puissant (sauf que je n'y comprends rien), et oui il y a 5 fois trop de commentaires (mais cela me permet d'intervenir sur ce script au fil du temps). Pour moi, si ça marche et que j'y comprends, c'est suffisamment bon ;)
Show topic
Last visit Sunday, 24 November 15:21:19 UTC
P_:G_:PLAYER

powered by ryzom-api