ceki 2005/01/05 09:42:09
Modified: src/java/org/apache/log4j/net SMTPAppender.java
Log:
SMTPAppender now takes advantage of the poweful new features in Joran, in
particular the capabilty to configure appeder sub-components.
Revision Changes Path
1.44 +30 -36
logging-log4j/src/java/org/apache/log4j/net/SMTPAppender.java
Index: SMTPAppender.java
===================================================================
RCS file:
/home/cvs/logging-log4j/src/java/org/apache/log4j/net/SMTPAppender.java,v
retrieving revision 1.43
retrieving revision 1.44
diff -u -r1.43 -r1.44
--- SMTPAppender.java 4 Jan 2005 19:56:50 -0000 1.43
+++ SMTPAppender.java 5 Jan 2005 17:42:09 -0000 1.44
@@ -32,13 +32,13 @@
import org.apache.log4j.AppenderSkeleton;
import org.apache.log4j.Layout;
import org.apache.log4j.Level;
-import org.apache.log4j.LogManager;
import org.apache.log4j.helpers.CyclicBuffer;
import org.apache.log4j.helpers.OptionConverter;
import org.apache.log4j.pattern.PatternConverter;
import org.apache.log4j.pattern.PatternParser;
import org.apache.log4j.rule.ExpressionRule;
import org.apache.log4j.rule.Rule;
+import org.apache.log4j.spi.ComponentBase;
import org.apache.log4j.spi.LoggingEvent;
import org.apache.log4j.spi.TriggeringEventEvaluator;
@@ -85,7 +85,6 @@
private boolean locationInfo = false;
protected CyclicBuffer cb = new CyclicBuffer(bufferSize);
protected MimeMessage msg;
- private String expression;
protected TriggeringEventEvaluator evaluator;
private PatternConverter subjectConverterHead;
@@ -319,29 +318,6 @@
}
/**
- * Returns the expression
- *
- * @return expression
- */
- public String getExpression() {
- return expression;
- }
-
- /**
- * Set an expression used to determine when the sending of an email is
triggered.
- *
- * Only use an expression to evaluate if the 'evaluatorClass' param is not
provided.
- * @param expression
- */
- public void setExpression(String expression) {
-
- if (evaluator instanceof DefaultEvaluator) {
- this.expression = expression;
- evaluator = new DefaultEvaluator(expression);
- }
- }
-
- /**
Returns value of the <b>Subject</b> option.
*/
public String getSubject() {
@@ -415,13 +391,16 @@
}
/**
- The <b>EvaluatorClass</b> option takes a string value
- representing the name of the class implementing the [EMAIL PROTECTED]
- TriggeringEventEvaluator} interface. A corresponding object will
- be instantiated and assigned as the triggering event evaluator
- for the SMTPAppender.
+ * The <b>EvaluatorClass</b> option takes a string value representing the
+ * name of the class implementing the [EMAIL PROTECTED]
TriggeringEventEvaluator}
+ * interface. A corresponding object will be instantiated and assigned as
+ * the triggering event evaluator for the SMTPAppender.
+ *
+ * @deprecated replaced by [EMAIL PROTECTED] #setEvaluator}.
*/
public void setEvaluatorClass(String value) {
+ getLogger().warn("The SMPTAppender.setEvaluatorClass is deprecated.");
+ getLogger().warn("It has been replaced with the more powerful
SMPTAppender.setEvaluator method.");
OptionConverter oc = new OptionConverter(this.repository);
evaluator =
(TriggeringEventEvaluator) oc.instantiateByClassName(
@@ -429,6 +408,14 @@
}
/**
+ * Set [EMAIL PROTECTED] TriggeringEventEvaluator} for this instance of
SMTPAppender.
+ */
+ public void setEvaluator(TriggeringEventEvaluator evaluator) {
+ this.evaluator = evaluator;
+ }
+
+
+ /**
The <b>LocationInfo</b> option takes a boolean value. By
default, it is set to false which means there will be no effort
to extract the location information related to the event. As a
@@ -470,17 +457,24 @@
}
-class DefaultEvaluator implements TriggeringEventEvaluator {
+class DefaultEvaluator extends ComponentBase implements
TriggeringEventEvaluator {
private Rule expressionRule;
+ private String expression;
public DefaultEvaluator() {}
- public DefaultEvaluator(String expression) {
- try {
- expressionRule = ExpressionRule.getRule(expression);
- } catch (IllegalArgumentException iae) {
- LogManager.getLogger(SMTPAppender.class).error("Unable to use provided
expression - falling back to default behavior (trigger on ERROR or greater
severity)", iae);
+ public void setExpression(String expression) {
+ this.expression = expression;
+ }
+
+ public void activateOptions() {
+ if(expression != null) {
+ try {
+ expressionRule = ExpressionRule.getRule(expression);
+ } catch (IllegalArgumentException iae) {
+ getLogger().error("Unable to use provided expression - falling back
to default behavior (trigger on ERROR or greater severity)", iae);
+ }
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]