Log4Net MemoryAppender parece perder eventos de registro de alta velocidad

Estoy usando un Log4net MemoryAppender para mostrar mi salida de log4net en un cuadro de texto del formulario. La parte relevante de mi archivo de configuración es:

<appender name="MemoryAppender" type="log4net.Appender.MemoryAppender" >
    <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%level %date %message%newline" />
    </layout>
</appender>

El código que actualiza el formulario es activado por un temporizador y se ve así:

var events = _memoryAppender.GetEvents();

foreach (var loggingEvent in events)
{
    textBoxOutput.Text += loggingEvent.Level + "  " + loggingEvent.MessageObject + Environment.NewLine;
}
_memoryAppender.Clear();

Está funcionando, pero cuando mi aplicación registra muchos mensajes en un corto período de tiempo, parece que no los veo. ¿Alguien tiene una idea de lo que está pasando?

Como una solución estoy usandoMotosierra y un appender UDP:

   <appender name="UdpAppender" type="log4net.Appender.UdpAppender">
    <filter type="log4net.Filter.LevelRangeFilter">
        <param name="LevelMin" value="INFO"/>
        <param name="LevelMax" value="ERROR"/>
    </filter>
    <param name="RemoteAddress" value="127.0.0.1" />
    <param name="RemotePort" value="8080" />
    <layout type="log4net.Layout.XmlLayoutSchemaLog4j, log4net" />
</appender>

Sin embargo, me gusta más mi propia interfaz de usuario, por lo que sigo buscando respuestas.

Respuestas a la pregunta(1)

Su respuesta a la pregunta