Bietet DotNetNuke ein eingebautes Error Logging Framework? Mein Client verwendet DotNetNuke und ich sehe kein globales Fehlerprotokollierungs-Framework. Ich sehe die Klasse unten mit einigen Versuchen / Catch's mit ihnen.
%Vor%DNN enthält log4net, siehe folgenden Wiki-Artikel: Ссылка
Log4Net ist verfügbar, aber die meisten Module verwenden die benutzerdefinierte Ausnahmenklasse in DNN, die "Ereignisse" in der EventLog-Tabelle speichert. Sie können auf die Berichte für "Ereignisse" einschließlich Fehler über die Seite Admin / Ereignisanzeige zugreifen.
Normalerweise würden Sie in einem Modul Folgendes tun:
%Vor%Es ist eine lange Zeit her, seit ich den ursprünglichen Artikel darüber geschrieben habe und nachdem ich einige Nachforschungen angestellt habe, glaube ich, dass ich eine bessere und aktuellere Ressource gefunden habe als die angenommene Antwort. Das Folgende enthält ein wenig mehr Informationen darüber, wie Sie Log4Net einrichten und in Ihre Module integrieren können, Ссылка .
Ein Vorteil des Log4Net-Ansatzes besteht offenbar darin, dass die Protokollierungsebene so konfiguriert werden kann, dass Anwendungen leichter untersucht und debuggt werden können. Dies kann besonders hilfreich sein, wenn Sie Anwendungen zwischen Umgebungen verschieben. Ich habe dies beim Debuggen einer Anwendung auf einem Server verwendet, auf dem ich den Prozess nicht anhängen und die Anwendung zum Debuggen unterbrechen kann. Ich stelle den Logging-Level hoch und arbeite mit den Infos im Log. Dies kann schmerzhaft sein, eine schmerzhafte Art zu debuggen, aber wirklich hilfreich, wenn Sie stecken bleiben.
In DNN 7 wird die hier erwähnte DnnLog-Klasse abgeschrieben, daher sollten Alternativen wahrscheinlich untersucht werden.
Es sieht so aus, als ob die benutzerdefinierte Ausnahmenklasse für Ausnahmen vorgesehen ist, die in allen Fällen protokolliert werden müssen. Ich fand diesen etwas älteren Artikel, der wahrscheinlich immer noch relevant ist, wenn die Notwendigkeit besteht, benutzerdefinierte Informationen zu protokollieren, Ссылка . Einige Klassen müssen aktualisiert werden, aber die gesamte Technik sah gut aus und entspricht mehr dem obigen Vorschlag von Chris. Mit ein wenig Optimierung könnte dieses Beispiel verwendet werden, um eine konfigurierbare Protokollierungsstufe zu implementieren.
Mein Verständnis ist, dass Sie die folgenden Optionen haben: