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
30 public class WithLayoutListAppender extends AppenderBase<ILoggingEvent> {
31
32 public List<String> list = new ArrayList<>();
33
34 String pattern;
35
36 PatternLayout patternLayout;
37
38 @Override
39 public void start() {
40 if (pattern == null) {
41 addError("null pattern disallowed");
42 return;
43 }
44 patternLayout = new PatternLayout();
45 patternLayout.setContext(context);
46 patternLayout.setPattern(pattern);
47 patternLayout.start();
48 if (patternLayout.isStarted())
49 super.start();
50 }
51
52 protected void append(ILoggingEvent e) {
53 String result = patternLayout.doLayout(e);
54 list.add(result);
55 }
56
57 public String getPattern() {
58 return pattern;
59 }
60
61 public void setPattern(String pattern) {
62 this.pattern = pattern;
63 }
64
65 }