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.util.concurrent.atomic.AtomicLong;
20
21 import org.apache.logging.log4j.core.LogEvent;
22 import org.apache.logging.log4j.core.config.plugins.Plugin;
23
24
25
26
27
28 @Plugin(name = "SequenceNumberPatternConverter", category = "Converter")
29 @ConverterKeys({ "sn", "sequenceNumber" })
30 public final class SequenceNumberPatternConverter extends LogEventPatternConverter {
31
32 private static final AtomicLong SEQUENCE = new AtomicLong();
33
34
35
36
37 private static final SequenceNumberPatternConverter INSTANCE =
38 new SequenceNumberPatternConverter();
39
40
41
42
43 private SequenceNumberPatternConverter() {
44 super("Sequence Number", "sn");
45 }
46
47
48
49
50
51
52
53 public static SequenceNumberPatternConverter newInstance(
54 final String[] options) {
55 return INSTANCE;
56 }
57
58
59
60
61 @Override
62 public void format(final LogEvent event, final StringBuilder toAppendTo) {
63 toAppendTo.append(Long.toString(SEQUENCE.incrementAndGet()));
64 }
65 }