Les meilleurs développeurs informatique freelances sont sur Codeur.com

Reverse enginneering, parsing de logs.

 Fermé · 500 € à 1 000 € · 10 offres · 965 vues · 12 interactions


Bonjour,

Je travaille à comprendre les logs d'un logiciel de caisse. J'ai une caisse qui écrit dans un fichier de log chaque opération qui est réalisé sur la caisse.

J'ai un historique de fichiers de logs quotidien pour trois restaurants.

J'ai une bonne connaissance du fonctionnement de la caisse et de la manière dont sont nommées différentes choses. Il y a encore des points qui m'échappent. J'ai le contact du fournisseur qui répond parfois à des questions, d'autre fois la réponse est "nous sommes trop occupés désolé".

J'ai besoin de modéliser les actions d'une journée, de partir d'un fichier de logs. Je suis ouvert à des propositions. Pour le moment j'imagine une base de données avec les colonnes : id_action (uuid), date (datetime), label_actions(varchar) , valeurs (json)

Pour comprendre l'extrait fourni ci-dessous :
- toutes les actions sont contenues dans des balises ejf
- track bill="..." signifie (je crois), qu'on créé une note qui contiendra des produits commandés (et je ne sais pas comment lier un produit commandé à une note)
- clerkopen signifie qu'un vendeur s'est loggé et num=20" signifie que c'est le serveur d'id 20, un autre fichier permet d'avoir les informations à propos des serveurs pour un id donné
- free_text signifie qu'un serveur ajoute un message personnalisé à une commande
- plu signifie qu'on command eun produit, le code c'est en fait l'id du produit (décrit dans un autre fichier), la quantité est multipliée par 1000 à cause d'éventuels produits qui se vendent avec des décimales (ex : 0,5L), price c'est le prix du produit, amt c'est le montant total prix*qte ...

Voici un extrait d'un fichier de logs :

<?xml version="1.0" encoding="UTF-8"?>
<ejf_data version="1.19" system="HX-6500-03" sys_ver="6.02">
<identity pos="2" posname="Bar Festif Lounge" branch="1" mac="00-0f-c2-00-ca-ce"/>
<ejf_info dp="0" date="[Téléphone visible pour les membres Pro]T23:34:16+11:00"/>
<stored_block>
</stored_block>
<closed_block>
<ejf num="1" pos="2" clerk="20" train="0" vd="0" rf="0" cr="0" pcr="0" tvd="0" tin="0" tout="0" date="[Téléphone visible pour les membres Pro]T16:37:09+11:00" zejf="0">
<track bill="[Téléphone visible pour les membres Pro]" table="1114" server="0" person="0 0" senior="0" location="0" inv_num="1" cust="" parent="0" reopen="0" waste="0"/>
</ejf>
<ejf num="2" pos="2" clerk="20" train="0" vd="0" rf="0" cr="0" pcr="0" tvd="0" tin="0" tout="0" date="[Téléphone visible pour les membres Pro]T16:37:09+11:00" zejf="0">
<clerkopen num="20" subtotal="0"/>
</ejf>
<ejf num="3" pos="2" clerk="20" train="0" vd="0" rf="0" cr="0" pcr="0" tvd="0" tin="0" tout="0" date="[Téléphone visible pour les membres Pro]T16:37:09+11:00" zejf="0">
<free_text msg=" Commande à table "/>
</ejf>
<ejf num="4" pos="2" clerk="20" train="0" vd="0" rf="0" cr="0" pcr="0" tvd="0" tin="0" tout="0" date="[Téléphone visible pour les membres Pro]T16:37:09+11:00" zejf="0">
<plu code="[Téléphone visible pour les membres Pro]" qty="1000" price="1500" amt="1500" upqty="1000">
<group num="7"/>
<mgroup num="1"/>
<tax num="5"/>
<cat num="1"/>
<stype num="1"/>
<kp file="1" level="1"/>
</plu>
</ejf>
<ejf num="5" pos="2" clerk="20" train="0" vd="0" rf="0" cr="0" pcr="0" tvd="0" tin="0" tout="0" date="[Téléphone visible pour les membres Pro]T16:37:09+11:00" zejf="0">
<store amt="1500"/>
</ejf>
<ejf num="6" pos="2" clerk="20" train="0" vd="0" rf="0" cr="0" pcr="0" tvd="0" tin="0" tout="0" date="[Téléphone visible pour les membres Pro]T16:37:19+11:00" zejf="0">
<subtotal amt="1500"/>
</ejf>
<ejf num="7" pos="2" clerk="20" train="0" vd="0" rf="0" cr="0" pcr="0" tvd="0" tin="0" tout="0" date="[Téléphone visible pour les membres Pro]T16:37:19+11:00" zejf="0">
<media num="20" dp="0" foreign="0" rate="0" subtotal="1500" count="1" amt="1500">
<tender amt="1500"/>
<sales amt="1500"/>
</media>
</ejf>
<ejf num="8" pos="2" clerk="20" train="0" vd="0" rf="0" cr="0" pcr="0" tvd="0" tin="0" tout="0" date="[Téléphone visible pour les membres Pro]T16:37:19+11:00" zejf="0">
<taxable num="5" amt="1230" addon="0" exempt="0"/>
</ejf>
<ejf num="9" pos="2" clerk="20" train="0" vd="0" rf="0" cr="0" pcr="0" tvd="0" tin="0" tout="0" date="[Téléphone visible pour les membres Pro]T16:37:19+11:00" zejf="0">
<tax num="5" amt="270" addon="0" exempt="0"/>
</ejf>
<ejf num="10" pos="2" clerk="20" train="0" vd="0" rf="0" cr="0" pcr="0" tvd="0" tin="0" tout="0" date="[Téléphone visible pour les membres Pro]T16:37:19+11:00" zejf="0">
<lastline receipt="6"/>
</ejf>
<ejf num="11" pos="2" clerk="20" train="0" vd="0" rf="0" cr="0" pcr="0" tvd="0" tin="0" tout="0" date="[Téléphone visible pour les membres Pro]T16:37:44+11:00" zejf="0">
<track bill="[Téléphone visible pour les membres Pro]" table="1114" server="0" person="0 0" senior="0" location="0" inv_num="2" cust="" parent="0" reopen="0" waste="0"/>
</ejf>
<ejf num="12" pos="2" clerk="20" train="0" vd="0" rf="0" cr="0" pcr="0" tvd="0" tin="0" tout="0" date="[Téléphone visible pour les membres Pro]T16:37:44+11:00" zejf="0">
<clerkopen num="20" subtotal="0"/>
</ejf>
<ejf num="13" pos="2" clerk="20" train="0" vd="0" rf="0" cr="0" pcr="0" tvd="0" tin="0" tout="0" date="[Téléphone visible pour les membres Pro]T16:37:44+11:00" zejf="0">
<free_text msg=" Commande à table "/>
</ejf>
<ejf num="14" pos="2" clerk="20" train="0" vd="0" rf="0" cr="0" pcr="0" tvd="0" tin="0" tout="0" date="[Téléphone visible pour les membres Pro]T16:37:44+11:00" zejf="0">
<plu code="[Téléphone visible pour les membres Pro]" qty="1000" price="1000" amt="1000" upqty="1000">
<group num="5"/>
<mgroup num="1"/>
<tax num="4"/>
<cat num="1"/>
<stype num="1"/>
<kp file="1" level="1"/>
</plu>
</ejf>
<ejf num="15" pos="2" clerk="20" train="0" vd="0" rf="0" cr="0" pcr="0" tvd="0" tin="0" tout="0" date="[Téléphone visible pour les membres Pro]T16:37:44+11:00" zejf="0">
<store amt="1000"/>
</ejf>
<ejf num="16" pos="2" clerk="20" train="0" vd="0" rf="0" cr="0" pcr="0" tvd="0" tin="0" tout="0" date="[Téléphone visible pour les membres Pro]T16:37:54+11:00" zejf="0">
<subtotal amt="1000"/>
</ejf>
<ejf num="17" pos="2" clerk="20" train="0" vd="0" rf="0" cr="0" pcr="0" tvd="0" tin="0" tout="0" date="[Téléphone visible pour les membres Pro]T16:37:54+11:00" zejf="0">
<media num="20" dp="0" foreign="0" rate="0" subtotal="1000" count="1" amt="1000">
<tender amt="1000"/>
<sales amt="1000"/>
</media>
</ejf>
<ejf num="18" pos="2" clerk="20" train="0" vd="0" rf="0" cr="0" pcr="0" tvd="0" tin="0" tout="0" date="[Téléphone visible pour les membres Pro]T16:37:54+11:00" zejf="0">
<taxable num="4" amt="901" addon="0" exempt="0"/>
</ejf>
<ejf num="19" pos="2" clerk="20" train="0" vd="0" rf="0" cr="0" pcr="0" tvd="0" tin="0" tout="0" date="[Téléphone visible pour les membres Pro]T16:37:54+11:00" zejf="0">
<tax num="4" amt="99" addon="0" exempt="0"/>
</ejf>
<ejf num="20" pos="2" clerk="20" train="0" vd="0" rf="0" cr="0" pcr="0" tvd="0" tin="0" tout="0" date="[Téléphone visible pour les membres Pro]T16:37:54+11:00" zejf="0">
<lastline receipt="7"/>
</ejf>
<ejf num="21" pos="2" clerk="20" train="0" vd="0" rf="0" cr="0" pcr="0" tvd="0" tin="0" tout="0" date="[Téléphone visible pour les membres Pro]T16:46:19+11:00" zejf="0">
<track bill="[Téléphone visible pour les membres Pro]" table="1131" server="0" person="0 0" senior="0" location="0" inv_num="3" cust="" parent="0" reopen="0" waste="0"/>
</ejf>
<ejf num="22" pos="2" clerk="20" train="0" vd="0" rf="0" cr="0" pcr="0" tvd="0" tin="0" tout="0" date="[Téléphone visible pour les membres Pro]T16:46:19+11:00" zejf="0">
<clerkopen num="20" subtotal="0"/>
</ejf>
<ejf num="23" pos="2" clerk="20" train="0" vd="0" rf="0" cr="0" pcr="0" tvd="0" tin="0" tout="0" date="[Téléphone visible pour les membres Pro]T16:46:19+11:00" zejf="0">
<free_text msg=" Commande à table "/>
</ejf>
...

Merci pour votre lecture, dans l'attente de votre réponse,
Erwan

Budget indicatif : 500 € à 1 000 €

Publication : 07 juin 2025 à 05h01

Profils recherchés : Développeur spécifique freelance , Intégrateur web freelance , Expert BDD freelance

Le profil du client est reservé aux prestataires abonnés

Créer un compte

10 freelances ont répondu à ce projet

7 propositions de devis en moins de 2h

Jérôme Drouin Développeur spécifique
Fabien Déchery Agence développement spécifique
aseto Développeur spécifique
BastienAB Développeur full-stack
Eric-Torak Développeur full-stack
Emmario Delar Développeur Python
C
+3

Montant moyen des devis proposés : 600 €

Estimation du délai : 5 jours

Publier un projet similaire

Chaque jour, des centaines de clients utilisent Codeur.com pour trouver un prestataire. Créez votre compte dès maintenant, remplissez votre profil et trouvez de nouveaux clients.

Trouver des nouveaux clients