Ich versuche über das NLog MailTarget zu loggen.
Es funktioniert gut, aber ich wollte das mailtarget mit dem BufferedTargetWrapper
um die Protokollnachrichten bis zu einem vordefinierten Codepoint, wo ich den Puffer manuell leeren möchten und die zuvor gepufferten Protokollnachrichten von einer einzigen Mail (wie in definiert Mailziel).
Wenn ich ein FlushTimeout
oder das BufferSize
des BufferedTargetWrapper
definiere, funktioniert alles immer noch gut, wie angenommen.
Aber wenn die FlushTimeout und die BufferSize nicht gesetzt ist, kann ich es nicht zum Laufen bringen.
Wie in dieser Frage auf SO geantwortet "BufferingTargetWrapper zu leeren ich habe so etwas nicht:
%Vor%Aber die Dokumentation und diese Antwort widersprechen meiner NLog-Version (2.0.0.2000). Es gibt keine Flush-Methode ohne Parameter, nur die Flush-Methode für asynchrone Ziele.
Gibt es eine Möglichkeit, den BufferingTargetWrapper zu zwingen, alle protokollierten Nachrichten an das umschlossene Ziel zu senden (um es per Mail zu senden)?
Laut der Dokumentation sollte Ihr Ansatz nicht funktionieren, aber es ist in Ordnung. Gib der Flush-Methode einfach einen leeren Lambda-Ausdruck:
%Vor%