uri*_*ium 6 .net logging log4net
我想在根记录器中添加一个内存appender,以便我可以连接到应用程序并获取最后10个事件.我只想保留最后的10.我担心这个appender消耗了太多的内存.该应用程序旨在24/7运行.或者还有另一种方式吗?
小智 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);
}
}
}
Run Code Online (Sandbox Code Playgroud)
我想,您可能需要创建一个自定义 Appender 类,该类MemoryAppender通过计算当前显示的消息数来派生并覆盖输出存储。您可以将消息存储在列表中,并在该Append方法中确定该列表是否已具有最大数量的消息。如果是这样,您可以删除最旧的消息并将新消息添加到列表中。