diff options
| author | Paul Buetow <paul@buetow.org> | 2026-01-09 23:26:31 +0200 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2026-01-09 23:26:31 +0200 |
| commit | 15ea7f40cd7302b9bf9f0aea0d85a970a8a7c07f (patch) | |
| tree | 897055fcb651cae1f5e96e14c966243325e95286 /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.xml | 19 | ||||
| -rw-r--r-- | src/main/resources/log4j2-async-1k.xml | 19 | ||||
| -rw-r--r-- | src/main/resources/log4j2-async-1m.xml | 16 | ||||
| -rw-r--r-- | src/main/resources/log4j2-async-4k.xml | 19 | ||||
| -rw-r--r-- | src/main/resources/log4j2-asyncapp-10k.xml | 16 | ||||
| -rw-r--r-- | src/main/resources/log4j2-asyncapp-1k.xml | 16 | ||||
| -rw-r--r-- | src/main/resources/log4j2-asyncapp-1m.xml | 16 | ||||
| -rw-r--r-- | src/main/resources/log4j2-asyncapp-4k.xml | 16 | ||||
| -rw-r--r-- | src/main/resources/log4j2-sync-buffered.xml | 13 | ||||
| -rw-r--r-- | src/main/resources/log4j2-sync-immediate.xml | 13 |
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> |
