我想在根记录器中添加一个内存appender,以便我可以连接到应用程序并获取最后10个事件。我只想保留最后的10.我担心这个appender消耗了太多的内存。该应用程序旨在24/7运行。或者还有另一种方式吗?
答案 0 :(得分:7)
您需要创建一个自定义appender来存储有限数量的日志。例如,MemoryAppender
可以按如下方式进行子类化:
public class LimitedMemoryAppender : MemoryAppender
{
override protected void Append(LoggingEvent loggingEvent)
{
base.Append(loggingEvent);
if (m_eventsList.Count > 10)
{
m_eventsList.RemoveAt(0);
}
}
}
答案 1 :(得分:3)
我想,您可能需要创建一个派生自MemoryAppender
的自定义Appender类,并通过计算当前显示的消息数来覆盖输出存储。您可以将消息存储在列表中,并在Append
方法中确定列表是否已具有最大消息数。如果是,则删除最早的消息并将新消息添加到列表中。