From 2e92a85fac99d5f2366197bbd9d24436efa21c22 Mon Sep 17 00:00:00 2001 From: Thomas <> Date: Fri, 21 Oct 2022 14:32:29 +0200 Subject: feat(connector): add JSON based statistic logger --- .../core/logger/MultipleStatisticLogger.java | 67 ++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 ms_specific_connector/src/main/java/at/asitplus/eidas/specific/core/logger/MultipleStatisticLogger.java (limited to 'ms_specific_connector/src/main/java/at/asitplus/eidas/specific/core/logger/MultipleStatisticLogger.java') diff --git a/ms_specific_connector/src/main/java/at/asitplus/eidas/specific/core/logger/MultipleStatisticLogger.java b/ms_specific_connector/src/main/java/at/asitplus/eidas/specific/core/logger/MultipleStatisticLogger.java new file mode 100644 index 00000000..008a5691 --- /dev/null +++ b/ms_specific_connector/src/main/java/at/asitplus/eidas/specific/core/logger/MultipleStatisticLogger.java @@ -0,0 +1,67 @@ +package at.asitplus.eidas.specific.core.logger; + +import java.util.Collections; +import java.util.Set; + +import org.springframework.beans.factory.annotation.Autowired; + +import com.google.common.collect.Sets; + +import at.gv.egiz.eaaf.core.api.IRequest; +import at.gv.egiz.eaaf.core.api.IStatusMessenger; +import at.gv.egiz.eaaf.core.api.idp.IAuthData; +import at.gv.egiz.eaaf.core.api.logging.IStatisticLogger; + +/** + * {@link IStatisticLogger} implementation that can log into more than one internal {@link IStatisticLogger}. + * + * @author tlenz + * + */ +public class MultipleStatisticLogger implements IStatisticLogger { + + private final Set internalLoggers; + + /** + * Build a statistic logger that logs into {@link StatisticLogger} and {@link AdvancedStatisicLogger}. + * + * @param messageService i18n message-source implementation. + */ + public MultipleStatisticLogger(@Autowired IStatusMessenger messageService) { + internalLoggers = Collections.unmodifiableSet( + Sets.newHashSet( + new StatisticLogger(), + new AdvancedStatisicLogger(messageService))); + + } + + + + @Override + public void logSuccessOperation(IRequest protocolRequest, IAuthData authData, boolean isSsoSession) { + internalLoggers.parallelStream() + .forEach(el -> el.logSuccessOperation(protocolRequest, authData, isSsoSession)); + + } + + @Override + public void logErrorOperation(Throwable throwable) { + internalLoggers.parallelStream().forEach(el -> el.logErrorOperation(throwable)); + + } + + @Override + public void logErrorOperation(Throwable throwable, IRequest errorRequest) { + internalLoggers.parallelStream().forEach(el -> el.logErrorOperation(throwable, errorRequest)); + + } + + @Override + public void internalTesting() throws Exception { + for (IStatisticLogger el : internalLoggers) { + el.internalTesting(); + + } + } + +} -- cgit v1.2.3