Certaines personnes utilisent ELMAH au lieu de log4net. Qu'est-ce qui le rend meilleur ?
J'ai découvert ELMAH en une réponse à une question de Stack Overflow Comment faire de la journalisation en C# ?
Certaines personnes utilisent ELMAH au lieu de log4net. Qu'est-ce qui le rend meilleur ?
J'ai découvert ELMAH en une réponse à une question de Stack Overflow Comment faire de la journalisation en C# ?
Log4Net est un cadre général de journalisation avec une API destinée à être utilisée dans votre application (web, console, dll, etc.).
logger.Debug("Some low level debug message...");
logger.Info("Some basic info");
logger.Warn("Some business logic problem, but not critical");
logger.Error("An unexpected error");
ELMAH est un plugin IIS discret, spécialement conçu pour l'enregistrement des données. exceptions dans une application web. Vous ne verrez pas de référence à ELMAH dans votre application, il n'a pas d'API avec laquelle vous interagissez. Il utilise les points d'extension IIS module et handler pour verrouiller le comportement. En outre, il dispose d'une interface Web permettant de visualiser les erreurs survenues dans votre application Web. Log4Net n'a pas de frontal, juste une variété de puits de log (Appenders) qui peuvent envoyer vos messages de log vers des choses comme des fichiers de log, un serveur syslog, une base de données, etc.
Une correction, Elmah a bien une Api avec laquelle le développeur peut interagir. Par exemple, la signalisation est réalisée par l'Api Elmah.
Une autre correction ? ELMAH est un HttpModule/HttpHandler .NET. Ce n'est PAS un plugin IIS. ARR est un plug-in. Pas ELMAH.
ELMAH a pour but de suivre les erreurs et les exceptions de vos applications Web et vous permet de consigner ou de visualiser facilement ces exceptions via différents mécanismes (SQL, RSS, Twitter, fichiers, courriel, etc.). Si vous n'avez pas de gestion des exceptions intégrée, ELMAH vous apportera très probablement ce que vous recherchez en termes de gestion des exceptions dans un environnement d'application web.
Log4net peut également être utilisé pour la journalisation des exceptions, mais vous devrez peut-être créer vos propres gestionnaires pour les intégrer à votre application Web. Log4net sera plus performant que ELMAH si vous avez besoin de faire d'autres types de journalisation d'informations, car Log4net est un cadre de journalisation général. Log4net peut également être utilisé dans presque toutes les applications .NET.
Vous pouvez obtenir le meilleur des deux mondes en utilisant cet Appender ELMAH pour log4net. Enregistrez ce que vous voulez (debug, info, warn, error) avec log4net mais stockez-le dans ELMAH. nuget.org/packages/elmahappender_log4net_1.2.10
ELMAH capture une multitude d'informations utiles dès le départ, si vous le configurez correctement. Pour le même temps, vous pouvez faire la même chose avec log4net avec plus de contrôle.
ELMAH fonctionne en créant un module HTTP qui s'accroche aux événements d'erreur et effectue ensuite la journalisation. Cela peut facilement être contrecarré et cassé par une mauvaise conception. Log4Net peut nécessiter un travail supplémentaire au départ, mais si vous utilisez un cadre AOP et que vous l'appliquez à l'ensemble de votre classe ou même à l'assemblage, vous pouvez obtenir une bien meilleure journalisation des exceptions avec très peu de code et d'efforts.
ELMAH ne fonctionne que s'il a accès à HttpContext, ce qui peut être difficile à réaliser dans les services WCF. Donc vous finirez par utiliser un autre logger dans WCF de toute façon. Pourquoi ne pas simplement utiliser une solution qui est plus universelle.
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.
0 votes
Duplicata possible de stackoverflow.com/questions/800009/
0 votes
Maintenant que .net core est dans le tableau, le scénario change-t-il ? (elmah ne prend pas en charge .net core à partir de janvier 2018).