summaryrefslogtreecommitdiff
path: root/src/main/resources
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2026-01-09 23:26:31 +0200
committerPaul Buetow <paul@buetow.org>2026-01-09 23:26:31 +0200
commit15ea7f40cd7302b9bf9f0aea0d85a970a8a7c07f (patch)
tree897055fcb651cae1f5e96e14c966243325e95286 /src/main/resources
Add Log4j2 benchmark tool
- Configurable thread count, duration, message size - Multiple logging configurations: sync-immediate, sync-buffered - AsyncLogger variants: 1k, 4k, 10k, 1m ring buffer sizes - AsyncAppender variants: 1k, 4k, 10k, 1m buffer sizes - Subprocess isolation for proper async logger initialization - Cache dropping between tests for accurate benchmarks - CSV output support
Diffstat (limited to 'src/main/resources')
-rw-r--r--src/main/resources/log4j2-async-10k.xml19
-rw-r--r--src/main/resources/log4j2-async-1k.xml19
-rw-r--r--src/main/resources/log4j2-async-1m.xml16
-rw-r--r--src/main/resources/log4j2-async-4k.xml19
-rw-r--r--src/main/resources/log4j2-asyncapp-10k.xml16
-rw-r--r--src/main/resources/log4j2-asyncapp-1k.xml16
-rw-r--r--src/main/resources/log4j2-asyncapp-1m.xml16
-rw-r--r--src/main/resources/log4j2-asyncapp-4k.xml16
-rw-r--r--src/main/resources/log4j2-sync-buffered.xml13
-rw-r--r--src/main/resources/log4j2-sync-immediate.xml13
10 files changed, 163 insertions, 0 deletions
diff --git a/src/main/resources/log4j2-async-10k.xml b/src/main/resources/log4j2-async-10k.xml
new file mode 100644
index 0000000..b2d26a9
--- /dev/null
+++ b/src/main/resources/log4j2-async-10k.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Configuration status="WARN">
+ <Appenders>
+ <File name="File" fileName="target/bench.log" immediateFlush="false" bufferSize="8192">
+ <PatternLayout pattern="[ASYNC-10K] %d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
+ </File>
+ </Appenders>
+ <Loggers>
+ <AsyncLogger name="bench" level="info" includeLocation="false">
+ <AppenderRef ref="File"/>
+ </AsyncLogger>
+ <Root level="info" includeLocation="false">
+ <AppenderRef ref="File"/>
+ </Root>
+ </Loggers>
+ <Properties>
+ <Property name="log4j2.asyncLoggerRingBufferSize">10240</Property>
+ </Properties>
+</Configuration>
diff --git a/src/main/resources/log4j2-async-1k.xml b/src/main/resources/log4j2-async-1k.xml
new file mode 100644
index 0000000..66389fe
--- /dev/null
+++ b/src/main/resources/log4j2-async-1k.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Configuration status="WARN">
+ <Appenders>
+ <File name="File" fileName="target/bench.log" immediateFlush="false" bufferSize="8192">
+ <PatternLayout pattern="[ASYNC-1K] %d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
+ </File>
+ </Appenders>
+ <Loggers>
+ <AsyncLogger name="bench" level="info" includeLocation="false">
+ <AppenderRef ref="File"/>
+ </AsyncLogger>
+ <Root level="info" includeLocation="false">
+ <AppenderRef ref="File"/>
+ </Root>
+ </Loggers>
+ <Properties>
+ <Property name="log4j2.asyncLoggerRingBufferSize">1024</Property>
+ </Properties>
+</Configuration>
diff --git a/src/main/resources/log4j2-async-1m.xml b/src/main/resources/log4j2-async-1m.xml
new file mode 100644
index 0000000..596d3d5
--- /dev/null
+++ b/src/main/resources/log4j2-async-1m.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Configuration status="WARN">
+ <Appenders>
+ <File name="File" fileName="target/bench.log" immediateFlush="true">
+ <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
+ </File>
+ </Appenders>
+ <Loggers>
+ <AsyncLogger name="bench" level="info" includeLocation="false">
+ <AppenderRef ref="File"/>
+ </AsyncLogger>
+ <Root level="info" includeLocation="false">
+ <AppenderRef ref="File"/>
+ </Root>
+ </Loggers>
+</Configuration>
diff --git a/src/main/resources/log4j2-async-4k.xml b/src/main/resources/log4j2-async-4k.xml
new file mode 100644
index 0000000..9e51895
--- /dev/null
+++ b/src/main/resources/log4j2-async-4k.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Configuration status="WARN">
+ <Appenders>
+ <File name="File" fileName="target/bench.log" immediateFlush="false" bufferSize="8192">
+ <PatternLayout pattern="[ASYNC-4K] %d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
+ </File>
+ </Appenders>
+ <Loggers>
+ <AsyncLogger name="bench" level="info" includeLocation="false">
+ <AppenderRef ref="File"/>
+ </AsyncLogger>
+ <Root level="info" includeLocation="false">
+ <AppenderRef ref="File"/>
+ </Root>
+ </Loggers>
+ <Properties>
+ <Property name="log4j2.asyncLoggerRingBufferSize">4096</Property>
+ </Properties>
+</Configuration>
diff --git a/src/main/resources/log4j2-asyncapp-10k.xml b/src/main/resources/log4j2-asyncapp-10k.xml
new file mode 100644
index 0000000..40db21e
--- /dev/null
+++ b/src/main/resources/log4j2-asyncapp-10k.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Configuration status="WARN">
+ <Appenders>
+ <File name="File" fileName="target/bench.log" immediateFlush="true">
+ <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
+ </File>
+ <Async name="Async" bufferSize="10240">
+ <AppenderRef ref="File"/>
+ </Async>
+ </Appenders>
+ <Loggers>
+ <Root level="info">
+ <AppenderRef ref="Async"/>
+ </Root>
+ </Loggers>
+</Configuration>
diff --git a/src/main/resources/log4j2-asyncapp-1k.xml b/src/main/resources/log4j2-asyncapp-1k.xml
new file mode 100644
index 0000000..ad43e23
--- /dev/null
+++ b/src/main/resources/log4j2-asyncapp-1k.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Configuration status="WARN">
+ <Appenders>
+ <File name="File" fileName="target/bench.log" immediateFlush="true">
+ <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
+ </File>
+ <Async name="Async" bufferSize="1024">
+ <AppenderRef ref="File"/>
+ </Async>
+ </Appenders>
+ <Loggers>
+ <Root level="info">
+ <AppenderRef ref="Async"/>
+ </Root>
+ </Loggers>
+</Configuration>
diff --git a/src/main/resources/log4j2-asyncapp-1m.xml b/src/main/resources/log4j2-asyncapp-1m.xml
new file mode 100644
index 0000000..7b5e1bb
--- /dev/null
+++ b/src/main/resources/log4j2-asyncapp-1m.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Configuration status="WARN">
+ <Appenders>
+ <File name="File" fileName="target/bench.log" immediateFlush="true">
+ <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
+ </File>
+ <Async name="Async" bufferSize="1048576">
+ <AppenderRef ref="File"/>
+ </Async>
+ </Appenders>
+ <Loggers>
+ <Root level="info">
+ <AppenderRef ref="Async"/>
+ </Root>
+ </Loggers>
+</Configuration>
diff --git a/src/main/resources/log4j2-asyncapp-4k.xml b/src/main/resources/log4j2-asyncapp-4k.xml
new file mode 100644
index 0000000..af4a2f2
--- /dev/null
+++ b/src/main/resources/log4j2-asyncapp-4k.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Configuration status="WARN">
+ <Appenders>
+ <File name="File" fileName="target/bench.log" immediateFlush="true">
+ <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
+ </File>
+ <Async name="Async" bufferSize="4096">
+ <AppenderRef ref="File"/>
+ </Async>
+ </Appenders>
+ <Loggers>
+ <Root level="info">
+ <AppenderRef ref="Async"/>
+ </Root>
+ </Loggers>
+</Configuration>
diff --git a/src/main/resources/log4j2-sync-buffered.xml b/src/main/resources/log4j2-sync-buffered.xml
new file mode 100644
index 0000000..ed143ab
--- /dev/null
+++ b/src/main/resources/log4j2-sync-buffered.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Configuration status="WARN">
+ <Appenders>
+ <File name="File" fileName="target/bench.log" immediateFlush="false" bufferSize="8192">
+ <PatternLayout pattern="[SYNC-BUF] %d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
+ </File>
+ </Appenders>
+ <Loggers>
+ <Root level="info">
+ <AppenderRef ref="File"/>
+ </Root>
+ </Loggers>
+</Configuration>
diff --git a/src/main/resources/log4j2-sync-immediate.xml b/src/main/resources/log4j2-sync-immediate.xml
new file mode 100644
index 0000000..25d5303
--- /dev/null
+++ b/src/main/resources/log4j2-sync-immediate.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Configuration status="WARN">
+ <Appenders>
+ <File name="File" fileName="target/bench.log" immediateFlush="true">
+ <PatternLayout pattern="[SYNC-IMM] %d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
+ </File>
+ </Appenders>
+ <Loggers>
+ <Root level="info">
+ <AppenderRef ref="File"/>
+ </Root>
+ </Loggers>
+</Configuration>