mwomack 2003/06/23 08:57:54
Modified: src/java/org/apache/log4j/plugins Receiver.java
Log:
Updated to implement new Thresholdable interface.
Removed comments about isActive. Want to review the whole "active" state.
Revision Changes Path
1.4 +40 -8
jakarta-log4j-sandbox/src/java/org/apache/log4j/plugins/Receiver.java
Index: Receiver.java
===================================================================
RCS file:
/home/cvs/jakarta-log4j-sandbox/src/java/org/apache/log4j/plugins/Receiver.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- Receiver.java 23 Jun 2003 03:47:21 -0000 1.3
+++ Receiver.java 23 Jun 2003 15:57:54 -0000 1.4
@@ -49,8 +49,10 @@
package org.apache.log4j.plugins;
+import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import org.apache.log4j.spi.LoggingEvent;
+import org.apache.log4j.spi.Thresholdable;
/**
@@ -82,23 +84,53 @@
is provided to standardize the "import" of remote events into
the repository.
- <p>The Active property of the Receiver indicates whether the Receiver will accept
events.
- If not active, any events that are posted to this receiver will not make
- their way into the Log4j system.
-
@author Mark Womack
@author Ceki Gülcü
@author Paul Smith <[EMAIL PROTECTED]>
@since 1.3
*/
-public abstract class Receiver extends PluginSkeleton {
+public abstract class Receiver extends PluginSkeleton implements Thresholdable {
+ protected Level thresholdLevel;
+
+ /**
+ Sets the receiver theshold to the given level.
+
+ @param level The threshold level events must equal or be greater
+ than before further processing can be done. */
+ public void setThreshold(Level level) {
+ thresholdLevel = level;
+ }
+
+ /**
+ Gets the current threshold setting of the receiver.
+
+ @return Level The current threshold level of the receiver. */
+ public Level getThreshold() {
+ return thresholdLevel;
+ }
+
/**
- If this Receiver is Active, posts the logging event to a logger in the
configured logger
+ Returns true if the given level is equals or greater than the current
+ threshold value of the receiver.
+
+ @param level The level to test against the receiver threshold.
+ @return boolean True if level is equal or greater than the
+ receiver threshold. */
+ public boolean isAsSevereAsThreshold(Level level) {
+ return ((thresholdLevel == null) || level.isGreaterOrEqual(thresholdLevel));
+ }
+
+ /**
+ Posts the logging event to a logger in the configured logger
repository.
- @param event the log event to post to the local log4j environment if active. */
+ @param event the log event to post to the local log4j environment. */
public void doPost(LoggingEvent event) {
-
+ // if event does not meet threshold, exit now
+ if (!isAsSevereAsThreshold(event.getLevel())) {
+ return;
+ }
+
// get the "local" logger for this event from the
// configured repository.
Logger localLogger =
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]