有没有办法设置log4net内存追加器可以包含的最大错误消息数?

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)


Ker*_*ido 3

我想,您可能需要创建一个自定义 Appender 类,该类MemoryAppender通过计算当前显示的消息数来派生并覆盖输出存储。您可以将消息存储在列表中,并在该Append方法中确定该列表是否已具有最大数量的消息。如果是这样,您可以删除最旧的消息并将新消息添加到列表中。