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