2010-10-29 21 views
8

Sto cercando un modo per un programma da riga di comando per poter inviare via email l'output log4net a un gruppo di utenti. In questo momento sto leggendo il file di registro, ma devo chiamare log4net.LogManager.Shutdown() per rilasciare il file in modo che io possa leggerlo, e devo indifferentemente inserire il nome del file di log o analizzare la configurazione di log4net per esso . Mi piacerebbe essere in grado di configurare un appender aggiuntivo che registra in una posizione in memoria da cui posso poi leggere.Esiste un appender di memoria log4net?

Non mi interessa creare un nuovo appender per questa funzionalità, ma non sono sicuro quale sia l'opzione migliore. Certamente non voglio fare affidamento su un altro file, database o fonte dati esterna solo per ottenere il mio output di registro.

risposta

14

Sì, c'è log4net.Appender.MemoryAppender. Ha un metodo GetEvents() che è possibile utilizzare per ottenere gli eventi che sono stati registrati.

+2

Ora, ho guardato l'elenco di build in appenders e non l'ho visto. Giuro che devo essere cieco. +1 per avermi chiamato. – Chris

1

Non sarebbe più appropriato per SmtpAppender questo utilizzo? E-mail direttamente.

+1

Sono d'accordo che la proprietà BufferSize possa essere utilizzata anche per configurare il batching; ma non se volessi dire una email al giorno o qualcosa di simile. –

Problemi correlati