2010-01-21 6 views
10

Ich versuche, einige der besten Protokoll-Dienstprogramme für .NET Framework, wie Microsoft Enterprise Library, Log4Net, Elmah zu bewerten.Welches Protokoll-Dienstprogramm ist gut für .NET-Anwendung in C# (ASP.NET, WinForms)?

Kann jemand, der bereits diese Übung durchgemacht hat, zu meiner Hilfe bei der Auflistung der Vor- und Nachteile der besten verfügbaren auf dem Markt kommen.

Dank & Grüße, Rajeev Ranjan Lall

+1

Haben Sie spezielle Protokollierungsanforderungen? Wie alle von denen, die Sie aufgeführt haben, sind ausgezeichnete – Kane

+2

Wie wäre es mit der Suche nach Stack Overflow zuerst? http://stackoverflow.com/questions/98080/what-is-the-best-logging-solution-for-ac-net-3-5-project http://stackoverflow.com/questions/147557/error -logging-in-c http://stackoverflow.com/questions/185542/net-logging-framework – Unsliced

+0

Ich würde auch mit ELMAH für Fehler-Management und Serilog für die Protokollierung alles andere gehen. Hier ist ein [ELMAH Tutorial] (http://blog.elmah.io/elmah-tutorial). Sehen Sie sich auch [.NET Logging Tools and Libraries] (http://dotnetlogging.net/) an, das eine Übersicht über die aktuell gepflegten Protokoll-Frameworks enthält. – ThomasArdal

Antwort

15

Im Allgemeinen ist eine gute Log4net.

PROS: Log4Net unterstützt viele Ausgabequellen.
CONS: Manchmal kann Ihre Anwendung verlangsamen.

Für ASP.NET-Anwendung ist der beste ELMAH.

PROS: Sie müssen einen Anwendungscode nicht ein wenig ändern, um Elmah zu verwenden. Sie müssen nur in Ihre Bewerbung aufnehmen.
CONS: Nicht, dass ich weiß.

+0

Log4net ist nur langsam auf, wie Sie implementieren und welche Klassen Sie es anhängen. –

+1

+1 für ELMAH. Ich benutze ELMAH seit Jahren und es ist großartig. Ich fing vor ungefähr einem Jahr an, ELMAH für die manuelle Fehlerprotokollierung für Nichtweb apps zu verwenden. Ich musste den Code ein wenig aktualisieren, damit ich den Namen der Anwendung eingeben konnte, aber dann funktionierte es gut. – JamesEggers

2

Elmah ist das beste. Elmah rockt!

+0

@this. __curious_geek: Ist elmah auch für Windows-Anwendungen? –

+0

Nein. Elmah verwendet bestimmte ASP.NET-Plattformfunktionen (Handler). –

+0

ELMAH ist ziemlich einfach zu bedienen und es ist ziemlich einfach, es in einer Windows-Anwendung zu verwenden. Der einzige Nachteil ist, dass Sie das nette HTTPModul verlieren, mit dem es geliefert wird, aber glücklicherweise gibt es ein Codeplex-Projekt, das hilft, solche zu aggregieren. http://aspexceptionreporter.codeplex.com/ – JamesEggers

1

Enterprise Library ist die einzige formale Ausgabe, mit der ich Erfahrung habe, und unser Team fand es zu umständlich und zu vielseitig für die Prime-Time. Sie können es sicher vermeiden und es wäre wahrscheinlich besser, stattdessen Ihre eigene Lösung zu programmieren.

Ich hatte nicht die Möglichkeit, Log4Net oder Elmah zu verwenden.

1

habe ich meine eigene benutzerdefinierte, EntLib, log4net zu verwenden und dann Elmah

Für Fehler asp.net Berichterstattung Elmah ist Kopf und Schultern über dem Rest. Ein paar Dinge, die ich gerne sehen würde, sind jedoch die Filterung und vielleicht eine tägliche Zusammenfassung der E-Mails und nicht eine E-Mail pro Fehler.

Wenn Sie Protokollierung injizieren möchten, warnt, debugs, Spuren usw. dann würde ich mich für log4net entscheiden.

aber es hängt von der Art Sie von der Anmeldung sind nach ...

+0

Rippo, erläutern Sie das bitte, weil ich davon überzeugt bin, dass RRL es begrüßen würde - es würde uns sicherlich auch bei unserem Unternehmensprojekt helfen (wir stehen am Rande einer weiteren manuell programmierten Lösung). Das zusätzliche Feedback könnte sich als unschätzbar erweisen. – Hardryv

+0

Welchen Teil möchten Sie mir näher erläutern? – Rippo

+0

Auf (iyho) Was genau an der Fehlerberichterstattung macht Elmah Kopf über die Konkurrenz, macht es die Arbeit anders? schneller? mit mehr Anmut? etc. – Hardryv

1

Schauen Sie sich Gibraltar für große Protokollierung und vieles mehr.

Es hat seine eigene Protokollierungs-API und wir haben auch Adapter für log4net, NLog und das Logger-Framework von Object Guy (auch PostSharp!). Neben der Protokollierung sammelt Gibraltar auch Fehler wie ELMAH und sammelt zusätzliche Metriken, die für den Kundendienst oder das CEIP nützlich sind.

3

log4net für Windows Forms, log4net und ELMAH für ASP.NET.

ELMAH und log4net haben unterschiedliche Zwecke. ELMAH erfasst Daten in Bezug auf nicht behandelte Ausnahmen, während log4net ein Protokollierungsframework auf konfigurierbaren Ebenen (INFO, WARN, DEBUG, FATAL) bereitstellt. log4net erfordert, dass Sie aktiv Protokollierungsanweisungen in Ihrem Code schreiben; ELMAH arbeitet automatisch einmal richtig konfiguriert.

0

Ich habe das noch nicht erwähnt, aber ich habe festgestellt, dass die eingebauten System.Diagnostics TraceSource und TraceListeners sind sehr leistungsfähig für die Protokollierung. Wir haben eine Reihe von leistungsstarken benutzerdefinierten TraceListenern für verschiedene Datenquellen entwickelt, für die wir Protokolle archivieren.

Wir tauschen ständig verschiedene Listener in der Konfigurationsdatei ein und aus. Wir nutzen System.Diagnostics.CorrelationManager, um die Ausführungskette über viele Server, Prozesse und Threads über Protokolle zu führen.

Alles in allem haben wir eine ausgeklügelte Protokollierungslösung, die auf dem basiert, was mit dem Framework geliefert wurde, und ich bin sehr zufrieden damit.