47 votes

Existe-t-il une façade de journalisation pour le monde .NET ?

Je suis un peu nouveau dans la pile .NET et je me demandais s'il existait un équivalent à slf4j pour la plate-forme .NET. Pour moi, la journalisation vers une façade et la possibilité d'interchanger les implémentations de journalisation selon les besoins sont tout simplement logiques. De plus, les API de wrapper disponibles dans slf4j m'ont sauvé de nombreuses fois lorsque j'avais besoin d'utiliser une bibliothèque tierce codée pour un seul cadre de journalisation que je n'utilisais pas.

Existe-t-il un projet qui fait office de façade entre des loggers comme log4net, nLog et Enterprise Library ? Existe-t-il des wrappers qui me permettent de raccourcir les appels à ces bibliothèques et de les diriger vers une autre bibliothèque ? Dois-je lancer un projet open source pour faire cela moi-même ? Cette question est-elle redondante parce que je ne connais pas la bonne façon de la poser ? À l'inverse, la façon courante de procéder consiste-t-elle à utiliser la programmation orientée aspect ?

0 votes

Bonne question - j'ai aussi ce problème. Il m'a juste fallu quelques minutes pour implémenter une interface ILog et une implémentation pour mon nLog préféré. Créons un projet OS - je me joindrais volontiers à vous :)

1 votes

C'est déjà fait. Voir ci-dessous le lien vers la journalisation commune pour .NET.

3 votes

Il existe également un FSL pour .NET : slf.codeplex.com basé sur le slf4j.

4voto

JotaBe Points 8950

Depuis que ceci a été écrit, un autre wrapper de journalisation intéressant appelé Fody.Anotar est apparu. À ce jour, c'est probablement le plus complet de tous. La plupart des autres, à l'exception de Logging Faciliy, sont assez obsolètes et ne soutiennent que les bûcherons les plus anciens.

Il possède des adaptateurs pour NLog, Log4Net, Serilog, CommongLogging, Catel, LibLog, MetroLog, NServiceBus et Splat, et vous permet de créer un adaptateur pour votre propre bibliothèque.

Vous pouvez utiliser Nuget pour l'installer. Recherchez les paquets Anotar.*.Fody, par exemple Anotar.NLog.Fody.

0voto

Robin Krom Points 96

J'ai trouvé toutes les solutions proposées ici insatisfaisantes, en particulier pour les bibliothèques/API. Bien que je n'aie jamais pensé que je le ferais, j'ai écrit un "logger" Open Source qui devrait résoudre la plupart des problèmes.

Vous pouvez peut-être jeter un coup d'œil à Dapplo.Log vous pouvez l'obtenir à partir de NuGet.

L'idée est d'utiliser Dapplo.Log dans votre bibliothèque, et le projet qui l'utilise peut alors diriger (quand c'est nécessaire) toute sortie de log vers le logger de son choix. Des exemples pour diriger la sortie peuvent être trouvés dans les tests, avec des implémentations de quelques frameworks majeurs. aquí .

Il n'est probablement pas parfait (encore), et je suis ouvert aux demandes de retrait ou aux tickets.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X