Introduction
En tant que développeur, la correction des bugs et des incidents en production fait partie de notre quotidien. Lorsque nous devons résoudre un bug, nous commençons par enquêter sur la source du problème. Souvent, en production, nous ne disposons pas des accès nécessaires pour déboguer le code en utilisant les fameux points d'arrêt. La première étape consiste donc à consulter les logs qui nous aident à examiner en détail les exceptions, à déterminer à quel moment le programme rencontre des problèmes, et à recueillir de nombreuses autres informations utiles pour notre enquête. Une fois cette étape terminée, nous pouvons commencer à envisager des solutions. Cela implique d'analyser le code, d'apporter des correctifs, et éventuellement de solliciter de l'aide si nécessaire. Mais que faire si les logs ne sont pas disponibles ? Pour répondre à cette question, je vais partager une expérience personnelle durant laquelle j'ai été confronté à un incident urgent. Initialement, j'ai consulté les fichiers de logs, mais la seule ligne de log que j'ai trouvée était "Démarrage de l'application...". C'était une nouvelle désagréable ! Pour résoudre cet incident, j'ai dû consacrer beaucoup plus de temps à trouver la solution et à déployer le correctif. Cela souligne l'importance cruciale des logs dans notre travail. Après avoir résolu ce bug, j'ai investi du temps pour mettre en place une stratégie de gestion des logs en utilisant Serilog.
Serilog : C’est quoi ?

Serilog est une bibliothèque populaire de gestion des logs pour les applications .NET Framework et .NET Core (.NET). Elle permet aux développeurs de créer des logs structurés et flexibles pour enregistrer divers événements et informations tout au long de l'exécution d'une application. L'objectif principal de Serilog est de rendre la journalisation plus puissante et plus facile à utiliser en fournissant une syntaxe expressive et des fonctionnalités avancées. Mais la grande différence par rapport à la simple journalisation, c'est que Serilog vous permet de faire cela de manière vraiment organisée et structurée. Vous pouvez enregistrer des événements avec des données détaillées, des métadonnées et des propriétés personnalisées. Cela signifie que lorsque vous parcourez les journaux, vous obtenez des informations riches et contextuelles sur ce qu’il se passe réellement, ce qui est incroyablement utile lors du débogage ou de l'analyse des performances.
Serilog : Avantages
Syntaxe fluide :
Serilog offre une syntaxe fluide qui permet aux développeurs de créer des messages de journalisation riches en informations. Cela facilite l'ajout de métadonnées et de propriétés personnalisées aux entrées de journal.


Configuration flexible :
Serilog offre une configuration souple, souvent basée sur des fichiers de configuration ou du code, ce qui facilite la personnalisation de la manière dont les messages de journalisation sont gérés et stockés.

Log structurés :
Au lieu de simplement enregistrer du texte brut, Serilog encourage l'enregistrement d'événements structurés. Cela signifie que les messages de journal peuvent contenir des propriétés et des données spécifiques, ce qui facilite la recherche, la filtration et l'analyse ultérieure des journaux.

Voir plus : https://github.com/serilog/serilog/wiki/Provided-Sinks
Sinks :
Serilog prend en charge différentes destinations de sortie pour les journaux. Cela signifie que vous pouvez configurer l’emplacement dans lequel vos messages de journalisation devraient être enregistrés, que ce soit dans la console, un fichier, une base de données, etc.

Extensions et intégrations :
Serilog propose de nombreuses extensions et intégrations avec d'autres bibliothèques et frameworks, ce qui facilite l'intégration de la journalisation dans votre application existante.
Intégration avec une application .Net 6 qui l’interface existante de Log ILogging :

Niveaux de Logging :
Comme la plupart des bibliothèques de journalisation, Serilog prend en charge plusieurs niveaux de journalisation tels que Debug, Verbose, Information, Warning, Error et Fatal. Cela permet de filtrer les messages en fonction de leur importance.

Serilog : Installation & Configuration
Nous ajoutons la bibliothèque Serilog


Nous ajoutons ensuite la configuration basique dans la classe program.cs qui permet d’écrire les logs dans un fichier text et dans la console

Et finalement, nous démarrons notre application pour tester


Maintenant, nous tentons d’écrire les Logs dans Azure ApplicationInsights On commence alors par télécharger Le Sink Serilog.Sinks.ApplicationInsights


On ajoute un bout de code dans la config

Maintenant, nous démarrons notre application et vérifions dans ApplicationInsights

Conclusion
Serilog est considéré comme la bibliothèque la plus populaire de gestion de logs dans les applications développées en .NET Framework et .NET Core. Ce n’est pas pour rien mais c’est grâce à un ensemble de fonctionnalités qui rependent à la globalité des besoins attendus par les développeurs.
Site officiel : https://serilog.net/
Github : https://github.com/serilog