2010-10-29 6 views
8

Estoy buscando una manera para que un programa de línea de comandos pueda enviar su salida de log4net a un grupo de usuarios. En este momento, estoy leyendo el archivo de registro pero tengo que llamar a log4net.LogManager.Shutdown() para liberar el archivo y poder leerlo, y tengo que codificar el nombre del archivo de registro o analizar la configuración de log4net. . Me gustaría poder configurar un appender adicional que se registre en una ubicación de memoria desde la que pueda leer.¿Hay un apilador de memoria log4net?

No me importa crear un nuevo appender para esta funcionalidad, pero no estoy seguro de cuál es la mejor opción. Ciertamente no quiero depender de otro archivo, base de datos o fuente de datos externa solo para obtener mi resultado de registro.

Respuesta

14

Sí, hay log4net.Appender.MemoryAppender. Tiene un método GetEvents() que puede usar para obtener los eventos que se han registrado.

+2

Ahora, miré la lista de compilación en appenders y no vi eso. Juro que debo ser ciego. +1 por llamarme en él. – Chris

1

¿No sería el SmtpAppender más apropiado para este uso? Envía correos electrónicos directamente.

+1

Acepto que la propiedad BufferSize también se puede usar para configurar lotes; pero no si quisiera decir un correo electrónico por día o similar. –

Cuestiones relacionadas