From d377330355f52cab6861b441d0148f98f121426e Mon Sep 17 00:00:00 2001 From: q3769 Date: Sat, 14 Oct 2023 14:04:33 -0500 Subject: [PATCH] + no additional thread switch for sole writer --- pom.xml | 2 +- .../service/writer/ConseqWriterGroup.java | 17 ++++++++--------- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/pom.xml b/pom.xml index acd522c..82823c2 100644 --- a/pom.xml +++ b/pom.xml @@ -31,7 +31,7 @@ io.github.elf4j elf4j-engine - 13.0.8 + 13.0.9 jar elf4j-engine A stand-alone Java log engine implementing the ELF4J (Easy Logging Facade for Java) API diff --git a/src/main/java/elf4j/engine/service/writer/ConseqWriterGroup.java b/src/main/java/elf4j/engine/service/writer/ConseqWriterGroup.java index d70a5eb..eaa6af7 100644 --- a/src/main/java/elf4j/engine/service/writer/ConseqWriterGroup.java +++ b/src/main/java/elf4j/engine/service/writer/ConseqWriterGroup.java @@ -52,7 +52,7 @@ public class ConseqWriterGroup implements LogWriter, LogServiceManager.Stoppable private Level minimumLevel; @ToString.Exclude private Boolean includeCallerDetail; - private ConseqWriterGroup(List writers, ConseqExecutor conseqExecutor) { + private ConseqWriterGroup(@NonNull List writers, ConseqExecutor conseqExecutor) { this.writers = writers; this.conseqExecutor = conseqExecutor; IeLogger.INFO.log("{} service writer(s) in {}", writers.size(), this); @@ -118,14 +118,13 @@ public Level getMinimumOutputLevel() { @Override public void write(@NonNull LogEvent logEvent) { - long callerThreadId = logEvent.getCallerThread().getId(); - if (writers.size() == 1) { - LogWriter soleWriter = writers.get(0); - conseqExecutor.execute(() -> soleWriter.write(logEvent), callerThreadId); - return; - } - conseqExecutor.execute(() -> writers.stream().parallel().forEach(writer -> writer.write(logEvent)), - callerThreadId); + conseqExecutor.execute(() -> { + if (writers.size() == 1) { + writers.get(0).write(logEvent); + return; + } + writers.stream().parallel().forEach(writer -> writer.write(logEvent)); + }, logEvent.getCallerThread().getId()); } @Override