我创建了一个自定义的log4net appender。它从log4net.Appender.SmtpAppender下降到log4net.Appender.BufferingAppenderSkeleton。为什么不是我的log4net appender缓冲?
我编程设置在其构造函数的参数如下:
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
我希望这将缓冲水平误差或更高的3个事件,并提供这些事件时,缓冲区填满。但是,我发现这些事件根本没有缓冲;相反,每次发生错误时都会立即调用SendBuffer()。
我的配置有错误吗?
感谢
我的理解是,它告诉appender在收到超过指定阈值的消息时刷新。 http://logging.apache.org/log4net/release/sdk/log4net.Core.LevelEvaluator.html 我也明白Level.Off是最高的门槛。 http://logging.apache.org/log4net/release/sdk/log4net.Core.Level.Off.html 其中之一不正确? – Eric 2010-03-17 13:56:25
@Eric:查看我更新的答案。 – 2010-03-17 21:17:10
很好地完成。这对我有用。谢谢。 – Eric 2010-03-17 22:04:11