1
2
3
4
5
6
7
8
9
10
11
12
13
14 package ch.qos.logback.classic.helpers;
15
16 import java.util.ArrayList;
17 import java.util.List;
18
19 import ch.qos.logback.classic.PatternLayout;
20 import ch.qos.logback.classic.spi.ILoggingEvent;
21 import ch.qos.logback.core.AppenderBase;
22
23
24
25
26
27
28
29 public class WithLayoutListAppender extends AppenderBase<ILoggingEvent> {
30
31 public List<String> list = new ArrayList<>();
32
33 String pattern;
34
35 PatternLayout patternLayout;
36
37 @Override
38 public void start() {
39 if (pattern == null) {
40 addError("null pattern disallowed");
41 return;
42 }
43 patternLayout = new PatternLayout();
44 patternLayout.setContext(context);
45 patternLayout.setPattern(pattern);
46 patternLayout.start();
47 if (patternLayout.isStarted())
48 super.start();
49 }
50
51 protected void append(ILoggingEvent e) {
52 String result = patternLayout.doLayout(e);
53 list.add(result);
54 }
55
56 public String getPattern() {
57 return pattern;
58 }
59
60 public void setPattern(String pattern) {
61 this.pattern = pattern;
62 }
63
64 }