Is there a way to set the maximum number of error

2019-06-20 08:43发布

I would like to add a memory appender to the root logger so that I can connect to the application and get the last 10 events. I only ever want to keep the last 10. I am worried about this appender consuming all too much memory. The application is designed to run 24/7. Or is there another way?

2条回答
Deceive 欺骗
2楼-- · 2019-06-20 09:02

You would need to create a custom appender to store a limited number of logs. For example the MemoryAppender could be subclassed as follows:

public class LimitedMemoryAppender : MemoryAppender
{
    override protected void Append(LoggingEvent loggingEvent) 
    {
        base.Append(loggingEvent);
        if (m_eventsList.Count > 10)
        {
            m_eventsList.RemoveAt(0);
        }
    } 
}
查看更多
Melony?
3楼-- · 2019-06-20 09:03

I guess, you may need to create a custom Appender class that derives from MemoryAppender and overrides the output storage by counting the number of messages currently displayed. You can store messages in a list, and, in the Append method, determine if the list already has maximum number of messages. If so, you delete the oldest message and add the new one to the list.

查看更多
登录 后发表回答