Ho creato un appender log4net personalizzato. Discende da log4net.Appender.SmtpAppender che scende da log4net.Appender.BufferingAppenderSkeleton.Perché il buffer dell'appender di log4net non è il mio?
ho programatically impostare i seguenti parametri nel suo costruttore:
this.Lossy = false; //don't drop any messages
this.BufferSize = 3; //buffer up to 3 messages
this.Threshold = log4net.Core.Level.Error; //append messages of Error or higher
this.Evaluator = new log4net.Core.LevelEvaluator(Level.Off); //don't flush the buffer for any message, regardless of level
mi aspetto che questo sarebbe tamponare 3 eventi di errore di livello o superiore e fornire quegli eventi quando il buffer è pieno. Tuttavia, sto scoprendo che gli eventi non sono affatto bufferizzati; invece, SendBuffer() viene chiamato immediatamente ogni volta che viene registrato un errore.
C'è un errore nella configurazione?
Grazie
La mia comprensione è che dice all'appender di svuotarsi quando viene ricevuto un messaggio che supera la soglia specificata. http://logging.apache.org/log4net/release/sdk/log4net.Core.LevelEvaluator.html Capisco anche che Level.Off è la soglia più alta. http://logging.apache.org/log4net/release/sdk/log4net.Core.Level.Off.html Uno di questi è errato? – Eric
@Eric: guarda la mia risposta aggiornata. –
ben fatto. Questo sta funzionando per me. Grazie. – Eric