aboutsummaryrefslogtreecommitdiff
path: root/ms_specific_proxyservice/src/main/java/at/asitplus/eidas/specific/proxy/logger/MultipleStatisticLogger.java
diff options
context:
space:
mode:
Diffstat (limited to 'ms_specific_proxyservice/src/main/java/at/asitplus/eidas/specific/proxy/logger/MultipleStatisticLogger.java')
-rw-r--r--ms_specific_proxyservice/src/main/java/at/asitplus/eidas/specific/proxy/logger/MultipleStatisticLogger.java68
1 files changed, 68 insertions, 0 deletions
diff --git a/ms_specific_proxyservice/src/main/java/at/asitplus/eidas/specific/proxy/logger/MultipleStatisticLogger.java b/ms_specific_proxyservice/src/main/java/at/asitplus/eidas/specific/proxy/logger/MultipleStatisticLogger.java
new file mode 100644
index 00000000..bd771fb2
--- /dev/null
+++ b/ms_specific_proxyservice/src/main/java/at/asitplus/eidas/specific/proxy/logger/MultipleStatisticLogger.java
@@ -0,0 +1,68 @@
+package at.asitplus.eidas.specific.proxy.logger;
+
+import java.util.Collections;
+import java.util.Set;
+
+import org.springframework.beans.factory.annotation.Autowired;
+
+import com.google.common.collect.Sets;
+
+import at.asitplus.eidas.specific.core.logger.StatisticLogger;
+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<IStatisticLogger> 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();
+
+ }
+ }
+
+}