43 votes

log4net vs Enterprise Library, quel est le meilleur? plus rapide?

Quelqu'un connaît-il des comparaisons de performances entre la dernière version de Enterprise Library et la dernière version de log4net?

Une raison technique pour laquelle je devrais choisir l’un sur l’autre?

26voto

BentOnCoding Points 6199

J'ai testé les deux récemment, c'est mon expérience:

Bibliothèque d'entreprise est venu avec beaucoup de frais généraux, je ne l'utiliser que sur un projet avec une grande équipe.

Log4Net

Pros

  • Plus facile à utiliser.
  • Haut niveau de Flexibilité.
  • Facile à connecter différents types d'erreurs avec peu de configuration.
  • Beaucoup de grandes blogs et des tutoriels sur Log4Net.
  • Beaucoup de 3ème partie de ressources existants, l'intégration avec Log4Net. Grand pré-conçu des solutions pour les différents types de journalisation*(de Mémoire, DB, Smtp, Fichier Local, etc..)*

Cons

  • La Documentation n'est pas expliqué dans un concis de l'ordre. J'ai eu de la recherche autour un peu pour trouver les définitions de certaines fonctions de base. Les Blogs ont été les plus utiles lors de la prise en mains.
  • Informations de dépannage a été encore plus rares. Heureusement, j'ai trouvé ces grandes ressources de phil haack.

La configuration de Log4Net pour les Applications Web

Dépannage

L'Entreprise De La Bibliothèque

Pros

  • Très bien documenté
  • Pris en charge par Microsoft
  • Continueront à être pris en charge et mis à jour (Log4Net est plus ou moins et vont probablement être mis à jour si .Net des changements dans certains façon que les bons de souscription)
  • Des configurations complexes peuvent être un peu plus facile à la plus simple à configurer pour les grands projets

Cons

  • Plus raide de la courbe d'apprentissage
  • Ajoute plus de dépendances de votre projet
  • A une plus grande incidence sur les performances. (Ceci est particulièrement important si vous écrivez un service qui a pour construire des objets à chaque appel.)
  • Pas comme beaucoup de pré-construit des solutions à différents types de journalisation*(de Mémoire, db, smtp, etc..)*

25voto

japollock Points 864

Log4Net est plus rapide pour un, sans oublier que vous pouvez mettre en mémoire tampon vos INSERT de journal. Pour les journaux, je n'ai pas besoin d'être à jour en temps réel, j'ai défini un tampon de 10k messages.

Log4Net a également plus de moyens de consommer les données du journal - appenders, journal des événements, fichier glissant, email, etc.

14voto

James Nail Points 668

Je me pose la même question à l'instant, et en regardant la doc de EntLib connectant, je vois qu'il exige des références à la suite asssemblies (5):
--Microsoft.Practices.Unity.dll
--Microsoft.Practices.Unity.Interception.dll
--Microsoft.Practices.ServiceLocation.dll
--Microsoft.Practices.EnterpriseLibrary.Common.dll
--Microsoft.Practices.EnterpriseLibrary.Logging.dll

D'autre part, log4net besoin de ces références d'assembly (1):
--log4net.dll

Ainsi, au moins à première vue, log4net est beaucoup plus léger.

13voto

ilitirit Points 4636

Ayant utilisé les deux, je recommande Enterprise Library pour les grands projets où la facilité de configuration est prioritaire sur les performances et la taille.

Pour tout le reste, j'utiliserais log4net.

6voto

Sly Points 2992

Il y a une comparaison de l'enregistrement de cadres de .NET, y compris les caractéristiques et les performances, à http://essentialdiagnostics.codeplex.com/wikipage?title=Comparison

J'ai également écrit un billet à ce sujet http://sgryphon.wordpress.com/2012/01/03/comparison-of-logging-frameworks/

Oui, ceci a été fait dans le contexte d'une .NET Framework Système.Diagnostics projet, mais j'ai essayé d'être le plus juste possible.

Le code source de la comparaison de performance peut être téléchargé à partir du projet si vous voulez tester vous-même.

En bref:

  • La plupart des principaux journalisation des cadres.NET Framework Système.Diagnostics, log4net, NLog) sont comparables dans la vitesse, mais EntLib est terrible en comparaison.

  • Fonctionnalités entre les différentes bibliothèques sont comparables, par exemple, les deux incluent des rolling fichier de base de données et les auditeurs, mais log4net remporte probablement à nouveau (dans certains cas EntLib a effectivement moins de fonctionnalités que le construit en .NET Framework Système.Diagnostics).

Les avantages de log4net:

  • Beaucoup plus rapide
  • Hiérarchique (au lieu de plusieurs) sources
  • Retard de mise en forme (ne pas formater sauf si la déclaration est connecté EntLib ne dispose pas de cette, même si .NET Framework Système.Diagnostics n')
  • La journalisation de l'interace
  • Filtre sur la propriété ou la chaîne de match
  • Un évier de cuisine d'auditeurs (16), y compris net send, unix syslog, telnet

Les avantages de EntLib (plus de log4net). Notez que la plupart de ces derniers sont également en .NET Framework Système.Diagnostics.

  • Id d'événement (log4net a une contrib axd)
  • Corrélation des identificateurs (log4net contexte peut être utilisé pour un rouleau de-votre-propre version de ce)
  • Inter-processus de corrélation (identifiants transmis à travers WCF)
  • Peut source de traces du Système.Diagnotics, si pouvez obtenir des traces de WCF, WIF, System.Net et d'autres sources construit dans le .NET Framework
  • La priorité de l'attribut (bien que je ne suis pas sûr de savoir comment c'est utile)
  • Seulement 9 auditeurs, avec trois que log4net n'ont pas: MSMQ, WMI, et XML dans le suivi du Service format.

La Visionneuse de Trace de Service format XML est probablement le meilleur riches format, comme elle permet la corrélation entre les différents niveaux (mais est également disponible dans .NET Framework Système.Les Diagnostics, n'est pas une raison, je choisirais EntLib).

Ma préférence personnelle serait .NET Framework Système.Diagnostics d'abord, mais ensuite, à partir de les deux que vous avez demandé à propos de log4net sur EntLib.

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