From dcaa8212b5f051b00e3c16e1793fdce6e85daebc Mon Sep 17 00:00:00 2001 From: Bertrand Renuart Date: Tue, 16 Nov 2021 00:09:30 +0100 Subject: [PATCH 1/2] Add Async benchmark for logback-logstash-encoder Add a benchmark based on async support provided by logback-logstash-encoder. --- pom.xml | 9 +++++-- .../perf/AsyncWithFileAppenderBenchmark.java | 16 +++++++++-- src/main/resources/logback-async-perf.xml | 27 +++++++++++++++++++ 3 files changed, 48 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index 8bd7721..c743aac 100755 --- a/pom.xml +++ b/pom.xml @@ -18,7 +18,7 @@ 1.3.0-alpha10 - + 7.0 @@ -47,7 +47,12 @@ test-jar ${lb.version} - + + net.logstash.logback + logstash-logback-encoder + ${logback-logstash-encoder.version} + + log4j log4j diff --git a/src/main/java/ch/qos/logback/perf/AsyncWithFileAppenderBenchmark.java b/src/main/java/ch/qos/logback/perf/AsyncWithFileAppenderBenchmark.java index 6df1173..be33277 100755 --- a/src/main/java/ch/qos/logback/perf/AsyncWithFileAppenderBenchmark.java +++ b/src/main/java/ch/qos/logback/perf/AsyncWithFileAppenderBenchmark.java @@ -47,13 +47,16 @@ public class AsyncWithFileAppenderBenchmark { public static final String MESSAGE = "This is a debug message"; public static final String LOGBACK_ASYNC_FILE_PATH = "target/test-output/logback-async-perf.log"; + public static final String LOGBACK_LLE_ASYNC_FILE_PATH = "target/test-output/logback-lle-async-perf.log"; + public static final String LOG4J2_ASYNC_FILE_PATH = "target/test-output/log4j2-async-perf.log"; public static final String LOG4J_ASYNC_FILE_PATH = "target/test-output/log4j-async-perf.log"; Logger log4j2Logger; Logger log4j2RandomLogger; - org.slf4j.Logger slf4jLogger; - org.apache.log4j.Logger log4j1Logger; + org.slf4j.Logger slf4jLogger; // logback + org.apache.log4j.Logger log4j1Logger; // log4j1 + org.slf4j.Logger lleLogger; // logback-logstash-encoder @Setup public void setUp() throws Exception { @@ -69,6 +72,7 @@ public void setUp() throws Exception { log4j2Logger = LogManager.getLogger(this.getClass()); slf4jLogger = LoggerFactory.getLogger(this.getClass()); log4j1Logger = org.apache.log4j.Logger.getLogger(this.getClass()); + lleLogger = LoggerFactory.getLogger("LLE"); } @TearDown @@ -85,6 +89,7 @@ public void tearDown() { private void deleteLogFiles() { System.out.println("Deleting files if existent."); chattyDelete(LOGBACK_ASYNC_FILE_PATH); + chattyDelete(LOGBACK_LLE_ASYNC_FILE_PATH); chattyDelete(LOG4J2_ASYNC_FILE_PATH); chattyDelete(LOG4J_ASYNC_FILE_PATH); } @@ -107,6 +112,13 @@ public void logbackFile() { slf4jLogger.debug(MESSAGE); } + @BenchmarkMode(Mode.Throughput) + @OutputTimeUnit(TimeUnit.MILLISECONDS) + @Benchmark + public void logbackLleFile() { + lleLogger.debug(MESSAGE); + } + @BenchmarkMode(Mode.Throughput) @OutputTimeUnit(TimeUnit.MILLISECONDS) @Benchmark diff --git a/src/main/resources/logback-async-perf.xml b/src/main/resources/logback-async-perf.xml index a4a1148..2a0f15d 100755 --- a/src/main/resources/logback-async-perf.xml +++ b/src/main/resources/logback-async-perf.xml @@ -15,7 +15,34 @@ + + + + + -1 + + + target/test-output/logback-lle-async-perf.log + 256KB + false + false + + %d %p [%t] %logger - %m%n + + + + + + + + + + + + \ No newline at end of file From 11fb3d977c616ad71a370c5dae2b8876691978bf Mon Sep 17 00:00:00 2001 From: Bertrand Renuart Date: Wed, 1 Dec 2021 20:18:46 +0100 Subject: [PATCH 2/2] Declare LLE-FILE appender outside of the LLE appender The LLE-FILE appender is not started when declared "inside" the LLE appender. --- src/main/resources/logback-async-perf.xml | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/src/main/resources/logback-async-perf.xml b/src/main/resources/logback-async-perf.xml index 2a0f15d..a7f6ba3 100755 --- a/src/main/resources/logback-async-perf.xml +++ b/src/main/resources/logback-async-perf.xml @@ -22,18 +22,19 @@ -1 - - - target/test-output/logback-lle-async-perf.log - 256KB - false - false - - %d %p [%t] %logger - %m%n - - + + + target/test-output/logback-lle-async-perf.log + 256KB + false + false + + %d %p [%t] %logger - %m%n + + +