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 = "LineLocationPatternConverter", category = PatternConverter.CATEGORY)
27 @ConverterKeys({ "L", "line" })
28 public final class LineLocationPatternConverter extends LogEventPatternConverter implements LocationAware {
29
30
31
32 private static final LineLocationPatternConverter INSTANCE =
33 new LineLocationPatternConverter();
34
35
36
37
38 private LineLocationPatternConverter() {
39 super("Line", "line");
40 }
41
42
43
44
45
46
47
48 public static LineLocationPatternConverter newInstance(
49 final String[] options) {
50 return INSTANCE;
51 }
52
53
54
55
56 @Override
57 public void format(final LogEvent event, final StringBuilder output) {
58 final StackTraceElement element = event.getSource();
59
60 if (element != null) {
61 output.append(element.getLineNumber());
62 }
63 }
64
65 @Override
66 public boolean requiresLocation() {
67 return true;
68 }
69 }