Automatisation des Traces et Logs (Fody)
Cet article explique comment intéger Fody pour tracer une solution développée en C# sous .Net4.8.
Installation des Dépendances (NuGet)
Chaque projet de la solution à tracer doit posséder les packages suivants :
- Fody (Moteur d’injection).
- MethodBoundaryAspect.Fody (Extension pour les interceptions de méthodes).
Configuration de l’Injecteur (FodyWeavers.xml)
À la racine de chaque projet concerné, le fichier FodyWeavers.xml doit être présent avec ce contenu XML exact :
<Weavers>
<MethodBoundaryAspect />
</Weavers>
Implémentation de l’Aspect (TraceAutoAttribute.cs)
Créer une classe d’aspect (idéalement dans le projet Core) héritant de OnMethodBoundaryAspect (un exemple peut être télécharger ici, remplacer les noms des chemins et fichiers selon le besoin).
Points clés du code :
- OnEntry / OnExit : Gèrent les flux d’exécution normaux dans le fichier complet.
- OnException : Capture les erreurs et remplit le fichier spécifique aux incidents.
- Logique de Session : Utilise une variable static pour écraser (WriteAllText) les fichiers au premier appel de l’application, puis ajouter (AppendAllText) les logs suivants.
Activation Globale
Pour ne pas modifier chaque fichier source, l’activation se fait au niveau de l’assemblage. Dans le fichier Properties/AssemblyInfo.cs de chaque projet, ajouter tout en bas : [assembly: TraceAuto]
Validation et Déploiement
- Rebuild Global : Effectuer un « Re-générer la solution » pour forcer Fody à injecter le code IL dans les DLL.
- Vérification :
- Vérifier la création automatique du dossier des logs.
- Consulter <LOGFILE>.txt pour le flux complet.
- Consulter <ERRORLOGFILE>.txt pour isoler les crashs.