1
2
3
4
5
6
7
8
9
10
11
12
13
14 package ch.qos.logback.classic.pattern;
15
16 import ch.qos.logback.classic.PatternLayout;
17 import ch.qos.logback.classic.spi.ILoggingEvent;
18 import ch.qos.logback.core.pattern.CompositeConverter;
19 import ch.qos.logback.core.pattern.Converter;
20
21 public class PrefixCompositeConverter extends CompositeConverter<ILoggingEvent> {
22
23 public String convert(ILoggingEvent event) {
24 StringBuilder buf = new StringBuilder();
25 Converter<ILoggingEvent> childConverter = this.getChildConverter();
26
27 for (Converter<ILoggingEvent> c = childConverter; c != null; c = c.getNext()) {
28 if (c instanceof MDCConverter) {
29 MDCConverter mdcConverter = (MDCConverter) c;
30
31 String key = mdcConverter.getKey();
32 if (key != null) {
33 buf.append(key).append("=");
34 }
35 } else if (c instanceof PropertyConverter) {
36 PropertyConverter pc = (PropertyConverter) c;
37 String key = pc.getKey();
38 if (key != null) {
39 buf.append(key).append("=");
40 }
41 } else {
42 String classOfConverter = c.getClass().getName();
43
44 String key = PatternLayout.CONVERTER_CLASS_TO_KEY_MAP.get(classOfConverter);
45 if (key != null)
46 buf.append(key).append("=");
47 }
48 buf.append(c.convert(event));
49 }
50 return buf.toString();
51 }
52
53 protected String transform(ILoggingEvent event, String in) {
54 throw new UnsupportedOperationException();
55 }
56 }