Try to simplify the StatusLogger stuff
git-svn-id: https://svn.apache.org/repos/asf/logging/log4j/log4j2/branches/LOG4J2-609@1610467 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/status/StatusData.java b/log4j-api/src/main/java/org/apache/logging/log4j/status/StatusData.java
index a2dc4eb..0b36f83 100644
--- a/log4j-api/src/main/java/org/apache/logging/log4j/status/StatusData.java
+++ b/log4j-api/src/main/java/org/apache/logging/log4j/status/StatusData.java
@@ -23,7 +23,6 @@
import java.util.Date;
import org.apache.logging.log4j.Level;
-import org.apache.logging.log4j.Marker;
import org.apache.logging.log4j.message.Message;
/**
@@ -35,7 +34,6 @@
private final long timestamp;
private final StackTraceElement caller;
private final Level level;
- private final Marker marker;
private final Message msg;
private final Throwable throwable;
@@ -46,11 +44,10 @@
* @param msg The message String.
* @param t The Error or Exception that occurred.
*/
- public StatusData(final StackTraceElement caller, final Level level, final Marker marker, final Message msg, final Throwable t) {
+ StatusData(final StackTraceElement caller, final Level level, final Message msg, final Throwable t) {
this.timestamp = System.currentTimeMillis();
this.caller = caller;
this.level = level;
- this.marker = marker;
this.msg = msg;
this.throwable = t;
}
@@ -78,14 +75,6 @@
public Level getLevel() {
return level;
}
-
- /**
- * Returns the logging marker for the event.
- * @return The logging marker.
- */
- public Marker getMarker() {
- return marker;
- }
/**
* Returns the message associated with the event.
diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/status/StatusListener.java b/log4j-api/src/main/java/org/apache/logging/log4j/status/StatusListener.java
index a99d631..4e407b3 100644
--- a/log4j-api/src/main/java/org/apache/logging/log4j/status/StatusListener.java
+++ b/log4j-api/src/main/java/org/apache/logging/log4j/status/StatusListener.java
@@ -19,6 +19,8 @@
import java.io.Closeable;
import java.util.EventListener;
+import org.apache.logging.log4j.Level;
+
/**
* Interface that allows implementers to be notified of events in the logging system.
*/
@@ -29,4 +31,10 @@
* @param data The StatusData for the event.
*/
void log(StatusData data);
+
+ /**
+ * Return the Log Level that this listener wants included.
+ * @return the Log Level.
+ */
+ Level getStatusLevel();
}
diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/status/StatusLogger.java b/log4j-api/src/main/java/org/apache/logging/log4j/status/StatusLogger.java
index 3bd3551..9a248b0 100644
--- a/log4j-api/src/main/java/org/apache/logging/log4j/status/StatusLogger.java
+++ b/log4j-api/src/main/java/org/apache/logging/log4j/status/StatusLogger.java
@@ -186,7 +186,7 @@
if (fqcn != null) {
element = getStackTraceElement(fqcn, Thread.currentThread().getStackTrace());
}
- final StatusData data = new StatusData(element, level, marker, msg, t);
+ final StatusData data = new StatusData(element, level, msg, t);
msgLock.lock();
try {
messages.add(data);
@@ -195,7 +195,9 @@
}
if (listeners.size() > 0) {
for (final StatusListener listener : listeners) {
- listener.log(data);
+ if (data.getLevel().isMoreSpecificThan(listener.getStatusLevel())) {
+ listener.log(data);
+ }
}
} else {
logger.logMessage(fqcn, level, marker, msg, t);
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/status/StatusConsoleListener.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/status/StatusConsoleListener.java
index 4c11dcf..117ede3 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/status/StatusConsoleListener.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/status/StatusConsoleListener.java
@@ -66,9 +66,6 @@
}
protected boolean isEnabledFor(final StatusData data) {
- if (level.isMoreSpecificThan(data.getLevel())) {
- return false;
- }
if (filters == null) {
return true;
}
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/jmx/StatusLoggerAdmin.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/jmx/StatusLoggerAdmin.java
index 78bd006..980944e 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/jmx/StatusLoggerAdmin.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/jmx/StatusLoggerAdmin.java
@@ -95,6 +95,11 @@
}
@Override
+ public Level getStatusLevel() {
+ return this.level;
+ }
+
+ @Override
public void setLevel(final String level) {
this.level = Level.toLevel(level, Level.ERROR);
}
@@ -113,15 +118,13 @@
*/
@Override
public void log(final StatusData data) {
- if (level.isLessSpecificThan(data.getLevel())) {
- final Notification notifMsg = new Notification(NOTIF_TYPE_MESSAGE, getObjectName(), nextSeqNo(), now(),
- data.getFormattedStatus());
- sendNotification(notifMsg);
-
- final Notification notifData = new Notification(NOTIF_TYPE_DATA, getObjectName(), nextSeqNo(), now());
- notifData.setUserData(data);
- sendNotification(notifData);
- }
+ final Notification notifMsg = new Notification(NOTIF_TYPE_MESSAGE, getObjectName(), nextSeqNo(), now(),
+ data.getFormattedStatus());
+ sendNotification(notifMsg);
+
+ final Notification notifData = new Notification(NOTIF_TYPE_DATA, getObjectName(), nextSeqNo(), now());
+ notifData.setUserData(data);
+ sendNotification(notifData);
}
/**