355 votes

log4net vs Nlog

Quelqu'un a une expérience pour les deux ? Comment ils comparent entre eux ?

Nous projetons à l’aide de l’un d’eux pour vous connecter à une application d’entreprise.

Références :

log4net

nlog

EDIT : Nous n’avons aucune dépendance existante à nlog ou log4net.

383voto

Matt Points 3687

J'ai récemment été chargé de "prototype certains loggin'" pour un projet à venir. Je n'ai pas de journalisation de l'expérience. J'ai fait des recherches, couru par le biais de tutoriels, faite de jouet apps, etc. sur Log4Net, NLog, et de la Bibliothèque d'Entreprise pour quelques jours. Entré en arrière 3-4 semaines plus tard, et les mettre ensemble dans la cohésion d'une démo. J'espère que certains de cela est utile pour vous.

Ma recommandation pour notre projet, c'est ceci:

  1. Utiliser un enregistrement de façade (par exemple Commun.La journalisation, SimpleLoggingFacade) pour éviter les dépendances directes.
  2. Si nous nous retrouvons en utilisant Entreprise de la Bibliothèque pour les autres installations, puis l'utiliser pour vous connecter, trop.
  3. Si nous nous retrouvons à l'aide de quelque chose avec une dépendance sur Log4Net, utilisez Log4Net.
  4. Si aucune de ce qui précède, l'utilisation NLog. Qui je préfère.

C'est sur la base de ces résultats (avis!):

  • Tous les 3 cadres sont capables et pouvez faire un peu les choses sophistiquées. Nous voulons une solution de qualité, mais franchement, n'avez pas besoin d'ultra haute performance ou de 60 types de récepteurs d'événements.
  • Tous les 3 sont très similaires concepts de base.
  • Chacun a ses propres trucs cool, comme le routage avancé, ou dynamique journal des noms de fichiers, fichier de les tronquer, etc.
  • Tous les 3 sont assez bien documentées dans leur propre chemin.
  • Complète pour un newb comme moi, ils étaient tous un peu maladroit au début. Pas de différences radicales ici pour les bases. Je l'ai eu sur elle.
  • Lorsque vous retournerez sur les choses, quelques semaines plus tard, NLog était clairement le plus facile à reprendre. J'ai besoin de très peu de brosse sur elle. Avec Log4Net, j'ai dû revoir quelques exemples en ligne pour commencer. Avec EntLib, j'ai donné et a fait des tutoriels de tout recommencer à partir de zéro - j'étais totalement perdu.
  • Je ne pouvais pas comprendre comment obtenir EntLib à faire certaines choses, comme le journal de la base de données. Il pourrait être facile, mais c'était au-delà de ma limite de temps.
  • Log4Net et NLog ont une petite empreinte de code. EntLib est de type spam, mais je préfère utiliser une façade de plus de toute façon.
  • J'ai accidentellement mal configuré EntLib et il m'a dit au moment de l'exécution. Log4Net n'a pas. Je n'ai pas accidentelle mauvaise config avec NLog.
  • EntLib est livré avec un joli app.l'éditeur de configuration, que vous à 100% besoin. NLog a un fichier de config schéma de sorte que vous obtenez "intellisense". Log4Net est livré avec nada.

Alors, évidemment, j'aime NLog jusqu'à présent. Pas assez pour l'utiliser en dépit d'avoir une autre solution disponible.

158voto

Jay Cincotta Points 2008

Un des éléments clés qui n'a pas été beaucoup discuté est le soutien et les mises à jour.

Log4Net n'a pas été mis à jour depuis la version 1.2.10 a été publié le 19 avril 2006.

En revanche, NLog a été activement soutenu depuis 2006, va bientôt sortir de NLog 2.0 qui prend en charge de nombreuses plates-formes qui n'existaient pas lors de log4net dernière mise à jour tels que:

  • NET Framework 2.0 SP1 et supérieur, 3.5 et 4.0 (Client et des profils Étendus)
  • Silverlight 2.0, 3.0, 4.0
  • .NET Compact Framework 2.0, 3.5
  • Mono 2.x profil

97voto

Narayan Akhade Points 1334

Ayant eu une expérience avec deux cadres récemment, j'ai pensé que je peux partager mon point de vue sur chacun des cadres.

J'ai été invité à évaluer la journalisation des cadres pour une application web existante, j'ai réduit mon choix à NLog (v2.0) et log4net (v1.2.11) après avoir parcouru divers forums en ligne. Voici mes conclusions:

  1. Réglage/de départ avec NLog est mort facile. Vous passez par le tutoriel d'initiation sur leur site web et vous avez terminé. Vous obtenez une juste idée, comment la chose pourrait être avec nlog. Fichier de configuration est intuitive que n'importe qui peut comprendre la config. Par exemple: si vous souhaitez définir l'interne de l'ouverture de session, vous définissez l'indicateur en Nlog fichier de configuration de l'en-tête de nœud, qui est l'endroit où vous l'attendez. Dans log4net, vous pouvez définir différents drapeaux dans le web.config de la section appSettings.

  2. Dans log4net, la consignation interne ne marche pas sortie timestamp qui est gênant. En Nlog, vous obtenez un joli journal avec des horodatages. Je l'ai trouvé très utile dans mes évaluations.

  3. Les filtres en log4net - Vous mieux de vérifier mon cette question - log4net filtre - comment écrire ET le filtre à ignorer les messages de journal et si vous trouvez une réponse/solution pour ce faire, s'il vous plaît laissez-moi savoir. Je comprends, il y a une solution pour cette question, vous pouvez écrire vos propres filtres personnalisés. Mais quelque chose qui n'est pas facilement disponible dans log4net.

  4. La Performance, je me suis connecté environ 3000 messages de journal de base de données à l'aide d'une procédure stockée. J'ai utilisé de la simple boucle for (int i=0; i & lt; 3000; i++... pour ouvrir une session le même message de 3000 fois. Pour l'écrit: log4net AdoAppender a fallu près de deux fois plus de temps que NLog.

  5. Log4net ne supporte pas asynchrone appender.

Il suffit de comparaison pour moi de choisir NLog comme la journalisation. :)

36voto

Jeremy Points 481

Pour quelqu'un arriver à ce fil fin, vous voudrez peut-être prendre un regard en arrière à la .Net de la Bibliothèque de classes de Base (BCL). Beaucoup de gens manqué les changements entre les deux .Net 1.1 et .Net 2.0 lors de la TraceSource de classe a été introduit (vers 2005).

À l'aide de la TraceSource est comme pour les autres journalisation des cadres, avec un contrôle granulaire de l'exploitation forestière, la configuration de l'app.config/web.config, et un accès par programme - sans les frais généraux de l'entreprise bloc d'application.

Il y a également un certain nombre de comparaisons flottant autour de: "log4net vs TraceSource"

34voto

Florian Doyon Points 2168

Pour nous, la différence essentielle est en général perf...

Jetez un oeil sur `` à NLog versus Log4Net, de nos tests, NLog a moins de surcharge et c’est ce que nous sommes après (trucs de faible latence).

Cheers, Florian

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