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 java.lang.management.ManagementFactory;
20
21 import org.apache.logging.log4j.core.LogEvent;
22 import org.apache.logging.log4j.core.config.plugins.Plugin;
23 import org.apache.logging.log4j.util.PerformanceSensitive;
24
25
26
27
28 @Plugin(name = "RelativeTimePatternConverter", category = PatternConverter.CATEGORY)
29 @ConverterKeys({ "r", "relative" })
30 @PerformanceSensitive("allocation")
31 public class RelativeTimePatternConverter extends LogEventPatternConverter {
32 private final long startTime = ManagementFactory.getRuntimeMXBean().getStartTime();
33
34
35
36
37 public RelativeTimePatternConverter() {
38 super("Time", "time");
39 }
40
41
42
43
44
45
46
47 public static RelativeTimePatternConverter newInstance(final String[] options) {
48 return new RelativeTimePatternConverter();
49 }
50
51
52
53
54 @Override
55 public void format(final LogEvent event, final StringBuilder toAppendTo) {
56 final long timestamp = event.getTimeMillis();
57 toAppendTo.append(timestamp - startTime);
58 }
59 }