You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by pk...@apache.org on 2023/09/08 14:41:12 UTC
[logging-log4j2] branch 2.x updated (37cca23c19 -> 78233104b4)
This is an automated email from the ASF dual-hosted git repository.
pkarwasz pushed a change to branch 2.x
in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git
from 37cca23c19 Bump com.github.tomakehurst:wiremock-jre8 from 2.35.0 to 2.35.1 (#1781)
new 6983e119f1 Extend `ListStatusListener` logging range
new 78233104b4 Add more logging for `JeroMqAppenderTest` on Windows
The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
.../log4j/test/junit/StatusLoggerExtension.java | 28 +++++++++++++++++-----
.../appender/mom/jeromq/JeroMqAppenderTest.java | 20 ++++++++++++++++
2 files changed, 42 insertions(+), 6 deletions(-)
[logging-log4j2] 01/02: Extend `ListStatusListener` logging range
Posted by pk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
pkarwasz pushed a commit to branch 2.x
in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git
commit 6983e119f10fde8566e82ed5f97a4c61874e8e94
Author: Piotr P. Karwasz <pi...@karwasz.org>
AuthorDate: Fri Sep 8 16:27:30 2023 +0200
Extend `ListStatusListener` logging range
This extends the range of the status messages stored by
`ListStatusListener` to include also those that are sent during the
initialization phase of the entire test.
This is necessary to deal with classes annotated with
`@LoggerContextSource`.
Part of #1776
---
.../log4j/test/junit/StatusLoggerExtension.java | 28 +++++++++++++++++-----
1 file changed, 22 insertions(+), 6 deletions(-)
diff --git a/log4j-api-test/src/main/java/org/apache/logging/log4j/test/junit/StatusLoggerExtension.java b/log4j-api-test/src/main/java/org/apache/logging/log4j/test/junit/StatusLoggerExtension.java
index 0452d63bd8..cdbc220b49 100644
--- a/log4j-api-test/src/main/java/org/apache/logging/log4j/test/junit/StatusLoggerExtension.java
+++ b/log4j-api-test/src/main/java/org/apache/logging/log4j/test/junit/StatusLoggerExtension.java
@@ -26,6 +26,7 @@ import org.apache.logging.log4j.status.StatusConsoleListener;
import org.apache.logging.log4j.status.StatusData;
import org.apache.logging.log4j.status.StatusLogger;
import org.apache.logging.log4j.test.ListStatusListener;
+import org.junit.jupiter.api.extension.BeforeAllCallback;
import org.junit.jupiter.api.extension.BeforeEachCallback;
import org.junit.jupiter.api.extension.ExtensionContext;
import org.junit.jupiter.api.extension.ExtensionContext.Store.CloseableResource;
@@ -34,7 +35,7 @@ import org.junit.jupiter.api.extension.ParameterResolutionException;
import org.junit.jupiter.api.extension.TestExecutionExceptionHandler;
class StatusLoggerExtension extends TypeBasedParameterResolver<ListStatusListener>
- implements BeforeEachCallback, TestExecutionExceptionHandler {
+ implements BeforeAllCallback, BeforeEachCallback, TestExecutionExceptionHandler {
private static final StatusLogger LOGGER = StatusLogger.getLogger();
private static final StatusConsoleListener CONSOLE_LISTENER = new StatusConsoleListener(Level.ALL);
@@ -44,9 +45,21 @@ class StatusLoggerExtension extends TypeBasedParameterResolver<ListStatusListene
super(ListStatusListener.class);
}
+ @Override
+ public void beforeAll(ExtensionContext context) throws Exception {
+ // Stores the per-class status listener to catch the messages caused by other
+ // `beforeAll` methods and extensions.
+ final ListStatusListenerHolder holder = new ListStatusListenerHolder(context, null);
+ ExtensionContextAnchor.setAttribute(KEY, holder, context);
+ }
+
@Override
public void beforeEach(final ExtensionContext context) throws Exception {
- final ListStatusListenerHolder holder = new ListStatusListenerHolder(context);
+ // Retrieves the per-class status listener
+ final ListStatusListenerHolder parentHolder = ExtensionContextAnchor.getAttribute(KEY,
+ ListStatusListenerHolder.class, context);
+ final ListStatusListener parent = parentHolder != null ? parentHolder.getStatusListener() : null;
+ final ListStatusListenerHolder holder = new ListStatusListenerHolder(context, parent);
ExtensionContextAnchor.setAttribute(KEY, holder, context);
}
@@ -69,8 +82,8 @@ class StatusLoggerExtension extends TypeBasedParameterResolver<ListStatusListene
private final ListStatusListener statusListener;
- public ListStatusListenerHolder(final ExtensionContext context) {
- this.statusListener = new JUnitListStatusListener(context);
+ public ListStatusListenerHolder(final ExtensionContext context, final ListStatusListener parent) {
+ this.statusListener = new JUnitListStatusListener(context, parent);
LOGGER.registerListener(statusListener);
}
@@ -88,10 +101,12 @@ class StatusLoggerExtension extends TypeBasedParameterResolver<ListStatusListene
private static class JUnitListStatusListener implements ListStatusListener {
private final ExtensionContext context;
+ private final ListStatusListener parent;
private final ArrayList<StatusData> statusData = new ArrayList<>();
- public JUnitListStatusListener(final ExtensionContext context) {
+ public JUnitListStatusListener(final ExtensionContext context, final ListStatusListener parent) {
this.context = context;
+ this.parent = parent;
}
@Override
@@ -116,7 +131,8 @@ class StatusLoggerExtension extends TypeBasedParameterResolver<ListStatusListene
@Override
public Stream<StatusData> getStatusData() {
synchronized (statusData) {
- return ((List<StatusData>) statusData.clone()).stream();
+ final List<StatusData> clone = (List<StatusData>) statusData.clone();
+ return parent != null ? Stream.concat(parent.getStatusData(), clone.stream()) : clone.stream();
}
}
[logging-log4j2] 02/02: Add more logging for `JeroMqAppenderTest` on Windows
Posted by pk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
pkarwasz pushed a commit to branch 2.x
in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git
commit 78233104b45fe4f87ddadebe513527b3ef2c98f2
Author: Piotr P. Karwasz <pi...@karwasz.org>
AuthorDate: Fri Sep 8 16:40:48 2023 +0200
Add more logging for `JeroMqAppenderTest` on Windows
The reason behind random Windows failure for this test are not clear
yet.
Related to #1568
---
.../core/appender/mom/jeromq/JeroMqAppenderTest.java | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
diff --git a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/appender/mom/jeromq/JeroMqAppenderTest.java b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/appender/mom/jeromq/JeroMqAppenderTest.java
index d501f64b05..73cb8daa9c 100644
--- a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/appender/mom/jeromq/JeroMqAppenderTest.java
+++ b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/appender/mom/jeromq/JeroMqAppenderTest.java
@@ -16,6 +16,7 @@
*/
package org.apache.logging.log4j.core.appender.mom.jeromq;
+import java.io.Serializable;
import java.util.List;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
@@ -24,7 +25,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 +71,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);
@@ -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;
@@ -154,6 +160,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");
@@ -191,4 +198,17 @@ public class JeroMqAppenderTest {
LOGGER.info("Starting ZMonitor for JeroMqAppender {}.", appender.getName());
return monitor;
}
+
+ private void addLoggingFilter(final JeroMqAppender appender) {
+ final Layout<? extends Serializable> 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;
+ }
+
+ });
+ }
}