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);
     }
 
     /**