You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by rg...@apache.org on 2020/07/27 22:18:32 UTC
[logging-log4j2] branch release-2.x updated: LOG4J2-2882 - Add
support for JUL filters
This is an automated email from the ASF dual-hosted git repository.
rgoers pushed a commit to branch release-2.x
in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git
The following commit(s) were added to refs/heads/release-2.x by this push:
new c11c8d4 LOG4J2-2882 - Add support for JUL filters
c11c8d4 is described below
commit c11c8d49a272d8fac737708fc7d26998a758d3df
Author: Emmanuel Bourg <eb...@apache.org>
AuthorDate: Thu Jul 2 13:25:15 2020 +0200
LOG4J2-2882 - Add support for JUL filters
---
.../org/apache/logging/log4j/jul/ApiLogger.java | 66 ++++++++++++++++++----
.../logging/log4j/jul/AbstractLoggerTest.java | 28 +++++++++
.../apache/logging/log4j/jul/ApiLoggerTest.java | 1 +
.../apache/logging/log4j/jul/CoreLoggerTest.java | 1 +
4 files changed, 85 insertions(+), 11 deletions(-)
diff --git a/log4j-jul/src/main/java/org/apache/logging/log4j/jul/ApiLogger.java b/log4j-jul/src/main/java/org/apache/logging/log4j/jul/ApiLogger.java
index a906183..92d38ec 100644
--- a/log4j-jul/src/main/java/org/apache/logging/log4j/jul/ApiLogger.java
+++ b/log4j-jul/src/main/java/org/apache/logging/log4j/jul/ApiLogger.java
@@ -119,22 +119,38 @@ public class ApiLogger extends Logger {
@Override
public void log(final Level level, final String msg) {
- logger.log(LevelTranslator.toLevel(level), msg);
+ if (getFilter() == null) {
+ logger.log(LevelTranslator.toLevel(level), msg);
+ } else {
+ super.log(level, msg);
+ }
}
@Override
public void log(final Level level, final String msg, final Object param1) {
- logger.log(LevelTranslator.toLevel(level), msg, param1);
+ if (getFilter() == null) {
+ logger.log(LevelTranslator.toLevel(level), msg, param1);
+ } else {
+ super.log(level, msg, param1);
+ }
}
@Override
public void log(final Level level, final String msg, final Object[] params) {
- logger.log(LevelTranslator.toLevel(level), msg, params);
+ if (getFilter() == null) {
+ logger.log(LevelTranslator.toLevel(level), msg, params);
+ } else {
+ super.log(level, msg, params);
+ }
}
@Override
public void log(final Level level, final String msg, final Throwable thrown) {
- logger.log(LevelTranslator.toLevel(level), msg, thrown);
+ if (getFilter() == null) {
+ logger.log(LevelTranslator.toLevel(level), msg, thrown);
+ } else {
+ super.log(level, msg, thrown);
+ }
}
@Override
@@ -216,36 +232,64 @@ public class ApiLogger extends Logger {
@Override
public void severe(final String msg) {
- logger.logIfEnabled(FQCN, org.apache.logging.log4j.Level.ERROR, null, msg);
+ if (getFilter() == null) {
+ logger.logIfEnabled(FQCN, org.apache.logging.log4j.Level.ERROR, null, msg);
+ } else {
+ super.severe(msg);
+ }
}
@Override
public void warning(final String msg) {
- logger.logIfEnabled(FQCN, org.apache.logging.log4j.Level.WARN, null, msg);
+ if (getFilter() == null) {
+ logger.logIfEnabled(FQCN, org.apache.logging.log4j.Level.WARN, null, msg);
+ } else {
+ super.warning(msg);
+ }
}
@Override
public void info(final String msg) {
- logger.logIfEnabled(FQCN, org.apache.logging.log4j.Level.INFO, null, msg);
+ if (getFilter() == null) {
+ logger.logIfEnabled(FQCN, org.apache.logging.log4j.Level.INFO, null, msg);
+ } else {
+ super.info(msg);
+ }
}
@Override
public void config(final String msg) {
- logger.logIfEnabled(FQCN, LevelTranslator.CONFIG, null, msg);
+ if (getFilter() == null) {
+ logger.logIfEnabled(FQCN, LevelTranslator.CONFIG, null, msg);
+ } else {
+ super.config(msg);
+ }
}
@Override
public void fine(final String msg) {
- logger.logIfEnabled(FQCN, org.apache.logging.log4j.Level.DEBUG, null, msg);
+ if (getFilter() == null) {
+ logger.logIfEnabled(FQCN, org.apache.logging.log4j.Level.DEBUG, null, msg);
+ } else {
+ super.fine(msg);
+ }
}
@Override
public void finer(final String msg) {
- logger.logIfEnabled(FQCN, org.apache.logging.log4j.Level.TRACE, null, msg);
+ if (getFilter() == null) {
+ logger.logIfEnabled(FQCN, org.apache.logging.log4j.Level.TRACE, null, msg);
+ } else {
+ super.finer(msg);
+ }
}
@Override
public void finest(final String msg) {
- logger.logIfEnabled(FQCN, LevelTranslator.FINEST, null, msg);
+ if (getFilter() == null) {
+ logger.logIfEnabled(FQCN, LevelTranslator.FINEST, null, msg);
+ } else {
+ super.finest(msg);
+ }
}
}
diff --git a/log4j-jul/src/test/java/org/apache/logging/log4j/jul/AbstractLoggerTest.java b/log4j-jul/src/test/java/org/apache/logging/log4j/jul/AbstractLoggerTest.java
index f81d3fa..ef69728 100644
--- a/log4j-jul/src/test/java/org/apache/logging/log4j/jul/AbstractLoggerTest.java
+++ b/log4j-jul/src/test/java/org/apache/logging/log4j/jul/AbstractLoggerTest.java
@@ -85,6 +85,34 @@ public abstract class AbstractLoggerTest {
}
@Test
+ public void testLogFilter() throws Exception {
+ logger.setFilter(record -> false);
+ logger.severe("Informative message here.");
+ logger.warning("Informative message here.");
+ logger.info("Informative message here.");
+ logger.config("Informative message here.");
+ logger.fine("Informative message here.");
+ logger.finer("Informative message here.");
+ logger.finest("Informative message here.");
+ final List<LogEvent> events = eventAppender.getEvents();
+ assertThat(events, hasSize(0));
+ }
+
+ @Test
+ public void testAlteringLogFilter() throws Exception {
+ logger.setFilter(record -> { record.setMessage("This is not the message you are looking for."); return true; });
+ logger.info("Informative message here.");
+ final List<LogEvent> events = eventAppender.getEvents();
+ assertThat(events, hasSize(1));
+ final LogEvent event = events.get(0);
+ assertThat(event, instanceOf(Log4jLogEvent.class));
+ assertEquals(Level.INFO, event.getLevel());
+ assertEquals(LOGGER_NAME, event.getLoggerName());
+ assertEquals("This is not the message you are looking for.", event.getMessage().getFormattedMessage());
+ assertEquals(ApiLogger.class.getName(), event.getLoggerFqcn());
+ }
+
+ @Test
public void testLogParamMarkers() {
final Logger flowLogger = Logger.getLogger("TestFlow");
flowLogger.logp(java.util.logging.Level.FINER, "sourceClass", "sourceMethod", "ENTER {0}", "params");
diff --git a/log4j-jul/src/test/java/org/apache/logging/log4j/jul/ApiLoggerTest.java b/log4j-jul/src/test/java/org/apache/logging/log4j/jul/ApiLoggerTest.java
index 6e08b3a..0f2c830 100644
--- a/log4j-jul/src/test/java/org/apache/logging/log4j/jul/ApiLoggerTest.java
+++ b/log4j-jul/src/test/java/org/apache/logging/log4j/jul/ApiLoggerTest.java
@@ -48,6 +48,7 @@ public class ApiLoggerTest extends AbstractLoggerTest {
@Before
public void setUp() throws Exception {
logger = Logger.getLogger(LOGGER_NAME);
+ logger.setFilter(null);
assertThat(logger.getLevel(), equalTo(java.util.logging.Level.FINE));
eventAppender = ListAppender.getListAppender("TestAppender");
flowAppender = ListAppender.getListAppender("FlowAppender");
diff --git a/log4j-jul/src/test/java/org/apache/logging/log4j/jul/CoreLoggerTest.java b/log4j-jul/src/test/java/org/apache/logging/log4j/jul/CoreLoggerTest.java
index fbc17b2..1a5a2f8 100644
--- a/log4j-jul/src/test/java/org/apache/logging/log4j/jul/CoreLoggerTest.java
+++ b/log4j-jul/src/test/java/org/apache/logging/log4j/jul/CoreLoggerTest.java
@@ -48,6 +48,7 @@ public class CoreLoggerTest extends AbstractLoggerTest {
@Before
public void setUp() throws Exception {
logger = Logger.getLogger(LOGGER_NAME);
+ logger.setFilter(null);
assertThat(logger.getLevel(), equalTo(Level.FINE));
eventAppender = ListAppender.getListAppender("TestAppender");
flowAppender = ListAppender.getListAppender("FlowAppender");