1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.logging.log4j.core.pattern;
18
19 import org.apache.logging.log4j.core.LogEvent;
20 import org.apache.logging.log4j.core.config.plugins.Plugin;
21 import org.apache.logging.log4j.core.impl.LocationAware;
22
23
24
25
26 @Plugin(name = "ClassNamePatternConverter", category = PatternConverter.CATEGORY)
27 @ConverterKeys({ "C", "class" })
28 public final class ClassNamePatternConverter extends NamePatternConverter implements LocationAware {
29
30 private static final String NA = "?";
31
32
33
34
35
36
37 private ClassNamePatternConverter(
38 final String[] options) {
39 super("Class Name", "class name", options);
40 }
41
42
43
44
45
46
47
48 public static ClassNamePatternConverter newInstance(final String[] options) {
49 return new ClassNamePatternConverter(options);
50 }
51
52
53
54
55
56
57
58 @Override
59 public void format(final LogEvent event, final StringBuilder toAppendTo) {
60 final StackTraceElement element = event.getSource();
61 if (element == null) {
62 toAppendTo.append(NA);
63 } else {
64 abbreviate(element.getClassName(), toAppendTo);
65 }
66 }
67
68 @Override
69 public boolean requiresLocation() {
70 return true;
71 }
72 }