Könnten Sie Ihr Wissen über Fehlerbehandlung / Protokollierungsstrategie für webbasierte ASP.NET 3.5-Anwendungen teilen?
Log4net Logging: Was haben Sie gefunden? um nützlich zu sein?
Welche Best Practices zum Protokollieren eines Fehlers?
Best Practices für die Protokollierung
Was in die Protokolldatei schreiben?
Welche Informationen sollte ich in meinem Web anmelden? App?
Das Protokollieren ist ein sehr kritischer Teil jeder Anwendung, daher ist es wichtig, dass Sie es gut machen.
Sie sollten log4net in Erwägung ziehen. Siehe diese Frage für weitere Informationen.
Es ist sehr robust, schnell und einfach zu bedienen.
Wenn ein Fehler auftritt, sollten Sie nicht versuchen, ihn abzufangen oder direkt im Code Ihrer Anwendung zu protokollieren, es sei denn, es handelt sich um einen Fehler, von dem Sie hoffen können, dass er wiederhergestellt wird. Wenn Sie beispielsweise über eine datengesteuerte Webanwendung verfügen und die Datenbank offline ist, können Sie die Daten nicht wiederherstellen. Wenn Sie jedoch eine E-Mail senden und zwei E-Mail-Server haben und der erste nicht erreichbar ist, können Sie möglicherweise den zweiten E-Mail-Server wiederherstellen.
Ich habe viele ASP.NET-Anwendungen gesehen, in denen Entwickler try...catch
blocks benutzt haben, um Fehler zu "schlucken". In Wirklichkeit werden try...catch
Blöcke nur verwendet, wenn eine bekannte Wiederherstellungsstrategie im Falle eines Fehlers vorliegt (z. B. die Verwendung eines alternativen E-Mail-Servers in meinem früheren Beispiel). Wenn Sie mehr als eine Handvoll try...catch
Blöcke in Ihrer Anwendung haben, tun Sie wahrscheinlich falsch.
Der Grund, warum Sie die Verwendung von try...catch
-Blöcken vermeiden möchten, ist, dass Ihre Fehlerprotokollierung und Benachrichtigung orthogonal zu Ihrer Anwendung sein soll. Sie möchten den Fehlerprotokollierungscode nicht auf jeder Seite oder in jeder Komponente ausschneiden und einfügen. Stattdessen möchten Sie einen Mechanismus hinzufügen, so dass jede nicht behandelte Ausnahme automatisch protokolliert wird und Entwickler automatisch benachrichtigt werden.
Die gute Nachricht ist, dass solche Fehlerprotokollierungs- und Benachrichtigungsfunktionen ziemlich einfach zu implementieren sind. Ich bevorzuge ELMAH , ein kostenloses Open-Source-Fehlerprotokollierungs- und Benachrichtigungssystem. Alternativ können Sie das integrierte Fehlerprotokollierungssystem von ASP.NET, Health Monitoring , verwenden.
Weitere Informationen zu ELMAH und der Gesundheitsüberwachung sowie Anleitungen zu benutzerdefinierten Fehlerseiten und zur Einrichtung aller Funktionen finden Sie in meinem Artikel Ausnahmebehandlungshinweis für ASP.NET-Webanwendungen .
Glückliche Programmierung!
Ich werde Java-agnostisch sein, und ich werde das Dokument von OWASP hinzufügen - offenes Webanwendungssicherheitsprojekt. Ich implementiere eine Protokollierungs- / Fehlerbehandlungsrichtlinie und es war wirklich nützlich.
Eine weitere gute Frage, die hier bereits bei stackoverflow beantwortet wurde: * Was sind die besten Methoden, um einen Fehler zu protokollieren? >