Débogage et diagnostic
Lorsque Serilog ne se comporte pas comme prévu, cela peut être dû à une exception interne ou à un problème de configuration. Voici quelques solutions pour résoudre ce problème.
SelfLog
Tout d'abord, Serilog écrira des messages de diagnostic simples sur la sortie spécifiée par l'utilisateur si elle est fournie. Appelez SelfLog.Enable() au démarrage du programme :
- Serilog.Debugging.SelfLog.Enable(msg => Debug.WriteLine(msg));
La console système, un fichier ou un StringWriter en mémoire peuvent tous être utilisés pour collecter la sortie de Serilog en fournissant un TextWriter au lieu d'un délégué :
- Serilog.Debugging.SelfLog.Enable(Console.Error);
Serilog n'écrit jamais ses propres événements dans des récepteurs définis par l'utilisateur.
Avertissement : SelfLog n'effectue aucune synchronisation sur le TextWriter fourni. Pour la plupart des implémentations, vous devez utiliser la méthode TextWriter.Synchronized() pour garantir que l'objet transmis peut être écrit à partir de plusieurs processus léger :
- var file = File.CreateText(...);
- Serilog.Debugging.SelfLog.Enable(TextWriter.Synchronized(file));
Symboles de débogage
La plupart des paquets Serilog incluent des symboles de débogage (_.PDB) sur http://symbolsource.org - l'ajouter en tant que serveur de symboles dans Visual Studio peut aider à déterminer la cause d'une exception d'un récepteur.
SerilogAnalyzer
Le SerilogAnalyzer est une analyseur basée sur Roslyn pour le code utilisant la bibliothèque de journalisation Serilog, vérifier les erreurs courantes et les problèmes d'utilisation.