Tôi đã tạo một ứng dụng tùy chỉnh log4net. Nó xuống từ log4net.Appender.SmtpAppender mà xuống từ log4net.Appender.BufferingAppenderSkeleton.Tại sao bộ đệm ứng dụng của tôi không phải là bộ đệm log4?
tôi programatically thiết lập các thông số sau trong constructor của nó:
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
Tôi hy vọng điều này sẽ đệm 3 sự kiện của mức Lỗi hoặc cao hơn và cung cấp những sự kiện khi bộ đệm được làm đầy. Tuy nhiên, tôi thấy rằng các sự kiện không được đệm ở tất cả; thay vào đó, SendBuffer() được gọi ngay lập tức mỗi lần lỗi được ghi lại.
Có lỗi trong cấu hình của tôi không?
Cảm ơn
Sự hiểu biết của tôi là nó nói với appender để tuôn ra khi một tin nhắn vượt quá ngưỡng quy định được nhận. http://logging.apache.org/log4net/release/sdk/log4net.Core.LevelEvaluator.html Tôi cũng hiểu rằng Level.Off là ngưỡng cao nhất. http://logging.apache.org/log4net/release/sdk/log4net.Core.Level.Off.html Một trong hai lỗi này có đúng không? – Eric
@Eric: xem câu trả lời cập nhật của tôi. –
được thực hiện tốt. Đó là làm việc cho tôi. Cảm ơn bạn. – Eric