This is an automated email from the ASF dual-hosted git repository.

pkarwasz pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git


The following commit(s) were added to refs/heads/main by this push:
     new f855b8be58 Wait for HANDSHAKE_PROTOCOL before logging
f855b8be58 is described below

commit f855b8be585a25c6cec8b846421bc5a556ebbcee
Author: Piotr P. Karwasz <[email protected]>
AuthorDate: Mon Sep 11 20:42:27 2023 +0200

    Wait for HANDSHAKE_PROTOCOL before logging
---
 .../log4j/jeromq/appender/JeroMqAppenderTest.java  | 27 +++++++++++++++++++---
 1 file changed, 24 insertions(+), 3 deletions(-)

diff --git 
a/log4j-jeromq/src/test/java/org/apache/logging/log4j/jeromq/appender/JeroMqAppenderTest.java
 
b/log4j-jeromq/src/test/java/org/apache/logging/log4j/jeromq/appender/JeroMqAppenderTest.java
index a12c9af76b..5a4562df05 100644
--- 
a/log4j-jeromq/src/test/java/org/apache/logging/log4j/jeromq/appender/JeroMqAppenderTest.java
+++ 
b/log4j-jeromq/src/test/java/org/apache/logging/log4j/jeromq/appender/JeroMqAppenderTest.java
@@ -24,7 +24,10 @@ import java.util.concurrent.TimeUnit;
 
 import org.apache.logging.log4j.Logger;
 import org.apache.logging.log4j.ThreadContext;
+import org.apache.logging.log4j.core.Layout;
+import org.apache.logging.log4j.core.LogEvent;
 import org.apache.logging.log4j.core.LoggerContext;
+import org.apache.logging.log4j.core.filter.AbstractFilter;
 import org.apache.logging.log4j.core.test.junit.LoggerContextSource;
 import org.apache.logging.log4j.core.test.junit.Named;
 import org.apache.logging.log4j.core.util.ExecutorServices;
@@ -67,6 +70,7 @@ public class JeroMqAppenderTest {
     @Test
     public void testClientServer(@Named(APPENDER_NAME) final JeroMqAppender 
appender, final LoggerContext ctx)
             throws Exception {
+        addLoggingFilter(appender);
         final Logger logger = ctx.getLogger(getClass());
         final int expectedReceiveCount = 3;
         final String endpoint = getTcpEndpoint(appender);
@@ -77,7 +81,8 @@ public class JeroMqAppenderTest {
         boolean connected = false;
         try {
             final Future<List<String>> future = executor.submit(client);
-            waitAtMost(DEFAULT_TIMEOUT_MS, MILLISECONDS).until(() -> 
hasEventOccurred(monitor, Event.ACCEPTED));
+            waitAtMost(DEFAULT_TIMEOUT_MS, MILLISECONDS)
+                    .until(() -> hasEventOccurred(monitor, 
Event.HANDSHAKE_PROTOCOL));
             connected = true;
             appender.resetSendRcs();
             logger.info("Hello");
@@ -104,6 +109,7 @@ public class JeroMqAppenderTest {
     @Test
     public void testMultiThreadedServer(@Named(APPENDER_NAME) final 
JeroMqAppender appender, final LoggerContext ctx)
             throws Exception {
+        addLoggingFilter(appender);
         final Logger logger = ctx.getLogger(getClass());
         final int nThreads = 10;
         final int expectedReceiveCount = 2 * nThreads;
@@ -115,7 +121,8 @@ public class JeroMqAppenderTest {
         boolean connected = false;
         try {
             final Future<List<String>> future = executor.submit(client);
-            waitAtMost(DEFAULT_TIMEOUT_MS, MILLISECONDS).until(() -> 
hasEventOccurred(monitor, Event.ACCEPTED));
+            waitAtMost(DEFAULT_TIMEOUT_MS, MILLISECONDS)
+                    .until(() -> hasEventOccurred(monitor, 
Event.HANDSHAKE_PROTOCOL));
             connected = true;
             appender.resetSendRcs();
             final ExecutorService fixedThreadPool = 
Executors.newFixedThreadPool(nThreads);
@@ -154,6 +161,7 @@ public class JeroMqAppenderTest {
 
     @Test
     public void testServerOnly(@Named(APPENDER_NAME) final JeroMqAppender 
appender, final LoggerContext ctx) {
+        addLoggingFilter(appender);
         final Logger logger = ctx.getLogger(getClass());
         appender.resetSendRcs();
         logger.info("Hello");
@@ -186,9 +194,22 @@ public class JeroMqAppenderTest {
 
     private ZMonitor createMonitor(final JeroMqAppender appender) {
         final ZMonitor monitor = new ZMonitor(JeroMqManager.getZContext(), 
appender.getManager().getSocket());
-        monitor.add(Event.ACCEPTED, Event.DISCONNECTED);
+        monitor.add(Event.HANDSHAKE_PROTOCOL, Event.DISCONNECTED);
         monitor.start();
         LOGGER.info("Starting ZMonitor for JeroMqAppender {}.", 
appender.getName());
         return monitor;
     }
+
+    private void addLoggingFilter(final JeroMqAppender appender) {
+        final Layout layout = appender.getLayout();
+        appender.addFilter(new AbstractFilter() {
+
+            @Override
+            public Result filter(LogEvent event) {
+                LOGGER.info("JeroMqAppender sent a message: {}.", 
layout.toSerializable(event));
+                return Result.NEUTRAL;
+            }
+
+        });
+    }
 }

Reply via email to