Я хотел бы добавить память appender к корневому регистратору так, чтобы я мог соединиться с приложением и получить последние 10 событий. Я только когда-либо хочу сохранить последние 10. Я волнуюсь по поводу этого appender, использующего слишком много памяти. Приложение разработано для выполнения 24/7. Или есть ли иначе?
Полагаю, вам может понадобиться создать пользовательский класс Appender, производный от MemoryAppender
и переопределяющий хранение вывода путем подсчета количества сообщений, отображаемых в данный момент. Вы можете хранить сообщения в списке и в методе Append
определять, есть ли в списке уже максимальное количество сообщений. Если да, то вы удаляете самое старое сообщение и добавляете в список новое.
Вам нужно создать пользовательский аппендер для хранения ограниченного количества журналов. Например, MemoryAppender
можно подклассифицировать следующим образом:
public class LimitedMemoryAppender : MemoryAppender
{
override protected void Append(LoggingEvent loggingEvent)
{
base.Append(loggingEvent);
if (m_eventsList.Count > 10)
{
m_eventsList.RemoveAt(0);
}
}
}