Wie protokolliert man alle Fehler in der Datenbank, aber E-Mail-Fehler nur bedingt?

9

Ich möchte, dass E-Mails nur unter bestimmten Bedingungen gesendet werden, und protokolliere den Fehler in der Datenbank in allen Fällen. Aber wie ich es verstehe, kann das Filtern für eines der beiden nicht funktionieren. Ist das richtig? Wenn ja, wie kann ich es erreichen?

Beachten Sie auch, dass ich gerade zusätzliche Informationen in der Datenbank speichern am ErrorMail_Mailing in global.asax wie geantwortet von Atif Aziz . Da E-Mails nur bedingt gesendet werden und ErrorMail_Mailing nur beim Senden von E-Mails ausgelöst wird, frage ich mich, wie ich zusätzliche Informationen über alle Fehler in der Datenbank speichern könnte.

UPDATE:
Ich habe den Elmah-Code ein wenig modifiziert, um meine Bedürfnisse zu befriedigen.

    
IsmailS 28.02.2012, 07:35
quelle

4 Antworten

2

Der erste Schritt besteht darin, Module zu konfigurieren. Stellen Sie sicher, dass Sie Elmah.ErrorFilterModule nach einem der Protokollierungsmodule von ELMAH hinzufügen, wie hier mit ErrorLogModule:

gezeigt %Vor%

Dann in Ihrem Konfigurationsbereich registriert Elmah.ErrorFilterSectionHandler wie hier gezeigt:

%Vor%

Jetzt können Sie Filter hinzufügen, um zu entscheiden, welche Fehler für welche Quelle ignoriert werden sollen. Das folgende Beispiel zeigt, wie verhindert werden kann, dass 404 HTTP-Fehler gesendet werden.

%Vor%

Sie können weitere Informationen über den folgenden Link herausfinden.

Ссылка

    
Jack 31.10.2012 23:31
quelle
1

Die ELMAH-Dokumentation zur Fehlerfilterung enthält einen Sektion genau auf Ihr Szenario und wird aufgerufen, was sich auf Filterung nach Quelle . Im Folgenden wird beispielsweise verhindert, dass 404-HTTP-Fehler gesendet werden, sie werden jedoch weiterhin protokolliert (vorausgesetzt, dass beide Mailing- und Protokollierungsmodule registriert sind):

%Vor%     
Atif Aziz 08.05.2014 11:02
quelle
0

Wenn Sie alle Ausnahmen in der Datenbank speichern möchten, sollten Sie einfach das ErrorLogModule verwenden können, das unabhängig von dem ist, was Sie im Fehlermail-Modul tun:

%Vor%

und dann in deiner elmah-Sektion deiner config:

%Vor%     
Drew Freyling 03.03.2012 03:56
quelle
0

Sie sollten das StackExchange.Exceptional

ausprobieren
  

Dieses Projekt wurde von ELMAH inspiriert, aber es passte nicht zu unseren Besonderheiten   erfordert eine sehr, sehr hohe Fehlerprotokollierung bei Netzwerkebene   Ereignis tritt auf.

     

StackExchange.Exceptional ist der intern verwendete Fehlerhandler   Stapeln Sie Exchange und Stack Overflow für die Protokollierung in SQL.

     

Es unterstützt auch JSON- und Speicherfehlerspeicher, Filtern von Ausnahmen   vor dem Logging und Fail / Retry-Mechanismen zum Speichern von Fehlern if   Es gibt eine Unterbrechung der Verbindung zum Fehlerspeicher.

Es ist sehr anpassbar und es ist wirklich einfach, etwas nach Ihren Bedürfnissen hinzuzufügen. Wie ich eine Pull-Anfrage sehen kann, hat die E-Mail-Funktionalität E-Mail-Funktionalität implementiert, damit Sie von dort aus starten können.

Um es einzurichten, müssen Sie sich nur das Web ansehen .config und wählen Sie aus, was aktiviert werden soll.

Ich hoffe, es hilft.

    
Matija Grcic 09.11.2012 13:13
quelle

Tags und Links