Benutzerdefinierter ILogListener

Wenn Sie eine eigene Implementierung von ILogListener erstellen möchten (zum Beispiel, um Nachrichten in einer Datenbank zu speichern), kann die Klasse LogListener geerbt oder das Interface ILogListener direkt implementiert werden. Das Objekt der Klasse LogMessage wird über die Methode ILogListener.WriteMessages(System.Collections.Generic.IEnumerable<Ecng.Logging.LogMessage> messages ) übergeben. Diese Klasse enthält Informationen über die Nachrichtenquelle LogMessage.Source (zum Beispiel eine Strategie, die die Nachricht erzeugt hat), den Nachrichtentyp LogMessage.Level (Information, Warnung oder Fehler) sowie den Text LogMessage.Message selbst. Das folgende Beispiel zeigt den Quellcode von EmailLogListener:

/// <summary>
public class EmailLogListener : LogListener
{
	public EmailLogListener(string from, string to)
	{
		if (from.IsEmpty())
			throw new ArgumentNullException("from");
		if (to.IsEmpty())
			throw new ArgumentNullException("to");
		From = from;
		To = to;
	}
	public string From { get; private set; }
	public string To { get; private set; }
	protected override void OnWriteMessage(LogMessage message)
	{
		var email = new SmtpClient();
		email.Send(new MailMessage(From, To, message.Source.Name + " " + message.Level, message.Message));
	}
}