ILogListener personalizado

Si desea crear su propia implementación de ILogListener (por ejemplo, cuando quiera guardar mensajes en la base de datos), se puede heredar la clase LogListener o implementar directamente la interfaz ILogListener. El objeto de la clase LogMessage se pasa mediante el método ILogListener.WriteMessages(System.Collections.Generic.IEnumerable<Ecng.Logging.LogMessage> messages ). Esta clase contiene información sobre la fuente del mensaje LogMessage.Source (por ejemplo, una estrategia que generó el mensaje), el tipo de mensaje LogMessage.Level (información, advertencia o error), así como el propio texto LogMessage.Message. El siguiente ejemplo muestra el código fuente de 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));
	}
}