6 Stimmen

Sendet der Log4net SMTPAppender E-Mails asynchron?

Sendet das Log4net SMTPAppender E-Mails asynchron? Wenn nicht, wie kann ich Logging-E-Mails asynchron senden?

Meine log4net.config ist:

1 Stimmen

Bitte überprüfen Sie auch dies: stackoverflow.com/questions/752456/…

4voto

Cole W Punkte 14733

Sie könnten die Protokollierungsmethode einfach asynchron aufrufen, wie folgt:

Task.Factory.StartNew(() => log.Info("Nachricht, die ich per E-Mail senden möchte"));

Ich habe diesen Vorschlag tatsächlich aus dem folgenden SO-Artikel erhalten:

Wie erstelle ich einen asynchronen Wrapper für log4net?

2voto

irriss Punkte 672

Es gibt einen einfachen Workaround, bevor die solide Lösung veröffentlicht wird.

public class SmtpAsyncAppender : SmtpAppender
{
    protected override void SendEmail(string messageBody)
    {
        Task.Run(() => base.SendEmail(messageBody));
    }
}

Es wird davon ausgegangen, dass SmtpAppender.SendEmail threadsicher und wieder betretbar ist. Es ist für log4net v1.2.13.0 und es gibt keinen Grund, warum dies in Zukunft nicht der Fall sein sollte.

0voto

Stefan Egli Punkte 17178

Log4net verfügt nicht über einen eingebauten Appender, der asynchron ist. Wenn Sie diese Funktionalität benötigen, müssen Sie Ihren eigenen Appender schreiben. Das Herunterladen des log4net-Quellcodes sollte Ihnen den Einstieg erleichtern...

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X