1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.logging.log4j.core.appender;
18
19 import java.util.Objects;
20 import java.util.concurrent.atomic.AtomicLong;
21
22 import org.apache.logging.log4j.core.Appender;
23 import org.apache.logging.log4j.core.Core;
24 import org.apache.logging.log4j.core.Layout;
25 import org.apache.logging.log4j.core.LogEvent;
26 import org.apache.logging.log4j.core.config.plugins.Plugin;
27 import org.apache.logging.log4j.core.config.plugins.PluginAttribute;
28 import org.apache.logging.log4j.core.config.plugins.PluginFactory;
29
30
31
32
33 @Plugin(name = "CountingNoOp", category = Core.CATEGORY_NAME, elementType = Appender.ELEMENT_TYPE, printObject = true)
34 public class CountingNoOpAppender extends AbstractAppender {
35
36 private final AtomicLong total = new AtomicLong();
37
38 public CountingNoOpAppender(final String name, final Layout<?> layout) {
39 super(name, null, layout);
40 }
41
42 public long getCount() {
43 return total.get();
44 }
45
46 @Override
47 public void append(final LogEvent event) {
48 total.incrementAndGet();
49 }
50
51
52
53
54 @PluginFactory
55 public static CountingNoOpAppender createAppender(@PluginAttribute("name") final String name) {
56 return new CountingNoOpAppender(Objects.requireNonNull(name), null);
57 }
58 }