Quelqu'un a de l'expérience pour les deux? Comment s'empilent-ils les uns contre les autres?
Nous prévoyons d'utiliser l'un d'entre eux pour se connecter à une application d'entreprise.
Références:
EDIT: Nous n'avons aucune dépendance existante à nlog ou log4net.
Réponses:
J'ai récemment été chargé de "prototyper une connexion" pour un projet à venir. Je n'avais aucune expérience de cadre de journalisation. J'ai fait des recherches, parcouru des didacticiels, créé des applications de jouets, etc. sur Log4Net, NLog et Enterprise Library pendant quelques jours. Nous sommes revenus 3-4 semaines plus tard et les avons rassemblés dans une démo cohérente. J'espère que cela vous sera utile.
Ma recommandation pour notre projet est la suivante:
C'est basé sur ces résultats (opinions!):
Donc, évidemment, j'aime NLog jusqu'à présent. Pas assez pour l'utiliser malgré une autre solution disponible.
la source
Un support clé qui n'a pas été beaucoup discuté est le support et les mises à jour.
Log4Net n'a pas été mis à jour depuis la publication de la version 1.2.10 le 19 avril 2006 .
En revanche, NLog a été activement pris en charge depuis 2006 et publiera bientôt NLog 2.0 prenant en charge de nombreuses plates-formes qui n'existaient pas lors de la dernière mise à jour de log4net, telles que:
la source
Ayant eu une expérience avec les deux frameworks récemment, j'ai pensé pouvoir partager mon point de vue sur chaque framework.
On m'a demandé d'évaluer les cadres de journalisation pour une application Web existante, j'ai limité mes choix à NLog (v2.0) et log4net (v1.2.11) après avoir parcouru divers forums en ligne. Voici mes découvertes:
La configuration / démarrage avec NLog est très simple. Vous passez par le tutoriel Mise en route sur leur site Web et vous avez terminé. Vous avez une idée juste, comment cela pourrait être avec nlog. Le fichier de configuration est si intuitif que n'importe qui peut comprendre la configuration. Par exemple: si vous souhaitez définir la connexion interne, vous définissez l'indicateur dans le nœud d'en-tête du fichier de configuration Nlog, où vous vous attendez à ce qu'il soit. Dans log4net, vous définissez différents indicateurs dans la section appSettings de web.config.
Dans log4net, la journalisation interne ne produit pas d'horodatage qui est ennuyeux. Dans Nlog, vous obtenez un joli journal avec des horodatages. Je l'ai trouvé très utile dans mes évaluations.
Filtres dans log4net - Vous feriez mieux de vérifier ma question - filtre log4net - comment écrire ET filtrer pour ignorer les messages du journal et si vous trouvez une réponse / solution pour cela, veuillez me le faire savoir. Je comprends, il existe une solution de contournement pour cette question, car vous pouvez écrire votre propre filtre personnalisé. Mais quelque chose qui n'est pas facilement disponible dans log4net.
Performance - J'ai enregistré environ 3000 messages de journal dans la base de données à l'aide d'une procédure stockée. J'ai utilisé simple for loop (int i = 0; i <3000; i ++ ... pour enregistrer le même message 3000 fois. Pour les écritures: log4net AdoAppender a pris presque le double du temps que NLog.
Log4net ne prend pas en charge l'appender asynchrone.
C'était une comparaison suffisante pour moi de choisir NLog comme cadre de journalisation. :)
la source
Pour quiconque accède à ce fil tardivement, vous voudrez peut-être jeter un œil à la bibliothèque de classes de base .Net (BCL). Beaucoup de gens ont manqué les changements entre .Net 1.1 et .Net 2.0 lorsque la classe TraceSource a été introduite (vers 2005).
L'utilisation de TraceSource est analogue à d'autres infrastructures de journalisation, avec un contrôle granulaire de la journalisation, la configuration dans app.config / web.config et l'accès programmatique - sans la surcharge du bloc d'application d'entreprise.
Il existe également un certain nombre de comparaisons qui flottent: "log4net vs TraceSource"
la source
Pour nous, la principale différence réside dans la performance globale ...
Jetez un œil à
Logger.IsDebugEnabled
NLog contre Log4Net, d'après nos tests, NLog a moins de surcharge et c'est ce que nous recherchons (trucs à faible latence).À la vôtre, Florian
la source
Regardez d'abord le reste de votre pile.
Si vous utilisez NHibernate, il utilise directement Log4Net. D'autres frameworks peuvent avoir d'autres enregistreurs spécifiques dont ils ont besoin.
Autre que cela: les deux fonctionnent bien.
Je me suis installé sur Log4Net moi-même. Il peut être difficile de configurer, et s'il n'est pas configuré correctement, il est difficile de comprendre ce qui n'a pas fonctionné. Mais vous pouvez lui faire faire presque tout ce que vous voudriez d'un enregistreur.
Si vous n'avez pas de problème permanent avec Log4Net, voici un article que j'ai écrit sur la façon de commencer avec lui: http://elegantcode.com/2007/12/07/getting-started-with-log4net/
la source
Eh bien .. J'ai utilisé la bibliothèque d'entreprise pour les tâches de journalisation de la base de données et maintenant je suis passé à NLog en raison d'un goulot d'étranglement des performances.
quelques informations de comparaison:
http://pauliusraila.blogspot.com/2010/10/solving-database-logging-bottlenecks.html
la source
Je fais écho à ce qui précède et préfère nLog. Entlib est inutilement gonflé.
Re: Log4net Une chose que je reçois TOUJOURS avec log4net oublie d'ajouter ce qui suit au global.asax pour lancer le composant:
la source
Si vous allez ici, vous pouvez trouver une matrice complète qui comprend à la fois les bibliothèques NLog et Log4Net ainsi que Enterprise Lib et d'autres produits.
Quelqu'un pourrait soutenir que la matrice est faite de manière à souligner les caractéristiques de la seule bibliothèque commerciale présente dans la matrice. Je pense que c'est vrai, mais cela a quand même été utile pour faire mon choix par rapport à NLog.
Cordialement
la source
Comme je l'ai remarqué, log4net verrouille leurs fichiers de sortie pendant toute la durée de l'application, vous ne pouvez donc pas les supprimer. Sinon, ils sont similaires.
Je préfère donc NLog.
la source
Prise sans vergogne pour un projet open source que je dirige, mais étant donné la discussion animée sur le cadre de journalisation .NET plus actif, j'ai pensé publier un lien obligatoire vers Serilog .
Pour une utilisation dans une application, Serilog est similaire (et s'appuie fortement) sur log4net. Contrairement à d'autres options de journalisation .NET, Serilog consiste cependant à préserver la structure des événements de journal pour une analyse hors ligne. Lorsque vous écrivez:
La plupart des bibliothèques de journalisation rendent immédiatement le message dans une chaîne. Serilog peut également le faire, mais il conserve la
{ Answer: 42 }
propriété de sorte que plus tard, en utilisant l'un des nombreux magasins de données NoSQL, vous pouvez correctement interroger les événements en fonction de la valeur deAnswer
.Nous sommes proches d'une version 1.0 et prenons en charge toutes les plates-formes modernes (.NET 4.5, Windows Store et Windows Phone 8).
la source
J'appuie également NLog car il fonctionne également avec du code non managé. Je suppose qu'il pourrait être possible d'utiliser log4net et log4cxx ensemble, mais NLog gère à la fois le code managé et non managé.
J'ai également regardé Common.Logging , une façade qui fait abstraction de l'api de journalisation, il prend en charge log4net, NLog et Entreprise Library. Je ne pense pas que je vais l'utiliser, mais j'aime la façon dont ils utilisent les lambdas pour améliorer les performances lorsque la journalisation est désactivée (une fonctionnalité partagée avec NLog et probablement d'autres).
la source
Vous pouvez également envisager le bloc de journalisation Microsoft Enterprise Library . Il est livré avec un joli designer.
la source
Je pense que le consensus général est que nlog est un peu plus facile à configurer et à utiliser. Les deux sont tout à fait capables, cependant.
la source
D'après mon expérience, SmartInspect bat à la fois NLog et log4net.
Sa documentation extrêmement simple à utiliser est excellente et vous pouvez afficher et filtrer les messages précédemment enregistrés avec leur visionneuse de journaux interactive, ce qui est un énorme avantage dans le monde réel.
Une chose que j'aime, ce sont les vues tabulées des données, comme les onglets du navigateur dans Chrome. Chaque onglet peut fournir une vue filtrée différente du journal.
la source