articles-backend-app
1package by.andd3dfx.util;
2
3import ch.qos.logback.classic.Level;
4import ch.qos.logback.classic.spi.ILoggingEvent;
5import ch.qos.logback.core.read.ListAppender;
6import java.util.Collections;
7import java.util.List;
8
9/**
10* Class for testing purposes to catch logs.
11*/
12public class MemoryAppender extends ListAppender<ILoggingEvent> {
13public void reset() {
14list.clear();
15}
16
17public boolean contains(String string, Level level) {
18return list.stream()
19.anyMatch(event -> event.getMessage().toString().contains(string)
20&& event.getLevel().equals(level));
21}
22
23public int countEventsForLogger(String loggerName) {
24return (int) list.stream()
25.filter(event -> event.getLoggerName().contains(loggerName))
26.count();
27}
28
29public List<ILoggingEvent> search(String string) {
30return list.stream()
31.filter(event -> event.getMessage().toString().contains(string))
32.toList();
33}
34
35public List<ILoggingEvent> search(String string, Level level) {
36return list.stream()
37.filter(event -> event.getMessage().toString().contains(string)
38&& event.getLevel().equals(level))
39.toList();
40}
41
42public int getSize() {
43return list.size();
44}
45
46public List<ILoggingEvent> getLoggedEvents() {
47return Collections.unmodifiableList(list);
48}
49}
50