Как вариант, как это может быть реализовано: Logback Appender Как только вы войдете в appender, вы сможете реализовать фильтрацию и все, что вам нужно.
1.Добавить зависимость к logback-classi c
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.3</version>
</dependency>
2.Добавить вход. xml к ресурсам
<configuration>
<appender name="list" class="com.test.ListAppender"/>
<root level="info">
<appender-ref ref="list"/>
</root>
</configuration>
3. Реализация класса Appender
package com.test;
import ch.qos.logback.classic.spi.ILoggingEvent;
import ch.qos.logback.core.AppenderBase;
import java.util.LinkedList;
import java.util.List;
public class ListAppender extends AppenderBase<ILoggingEvent> {
private static List<ILoggingEvent> eventList = new LinkedList<>();
@Override
protected void append(ILoggingEvent event) {
eventList.add(event);
}
public List<ILoggingEvent> getEventList() {
return eventList;
}
}
4.Проверить свой код
package com.test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class Main {
private static final Logger logger = LoggerFactory.getLogger(Main.class);
static ListAppender listAppender = new ListAppender();
public static void main(String[] args) {
logger.info("Hello World");
listAppender.getEventList().forEach(entry -> System.out.println("print log from list:" + entry));
System.out.println();
}
}