Return-Path: Delivered-To: apmail-logging-log4j-dev-archive@www.apache.org Received: (qmail 56510 invoked from network); 5 Jan 2005 17:45:54 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur-2.apache.org with SMTP; 5 Jan 2005 17:45:53 -0000 Received: (qmail 66069 invoked by uid 500); 5 Jan 2005 17:43:01 -0000 Delivered-To: apmail-logging-log4j-dev-archive@logging.apache.org Received: (qmail 65942 invoked by uid 500); 5 Jan 2005 17:42:59 -0000 Mailing-List: contact log4j-dev-help@logging.apache.org; run by ezmlm Precedence: bulk List-Unsubscribe: List-Subscribe: List-Help: List-Post: List-Id: "Log4J Developers List" Reply-To: "Log4J Developers List" Delivered-To: mailing list log4j-dev@logging.apache.org Received: (qmail 65794 invoked by uid 500); 5 Jan 2005 17:42:56 -0000 Received: (qmail 65686 invoked by uid 99); 5 Jan 2005 17:42:55 -0000 X-ASF-Spam-Status: No, hits=-9.8 required=10.0 tests=ALL_TRUSTED,NO_REAL_NAME X-Spam-Check-By: apache.org Received: from minotaur.apache.org (HELO minotaur.apache.org) (209.237.227.194) by apache.org (qpsmtpd/0.28) with SMTP; Wed, 05 Jan 2005 09:42:25 -0800 Received: (qmail 53439 invoked by uid 1208); 5 Jan 2005 17:42:09 -0000 Date: 5 Jan 2005 17:42:09 -0000 Message-ID: <20050105174209.53438.qmail@minotaur.apache.org> From: ceki@apache.org To: logging-log4j-cvs@apache.org Subject: cvs commit: logging-log4j/src/java/org/apache/log4j/net SMTPAppender.java X-Virus-Checked: Checked X-Spam-Rating: minotaur-2.apache.org 1.6.2 0/1000/N 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 Subject option. */ public String getSubject() { @@ -415,13 +391,16 @@ } /** - The EvaluatorClass option takes a string value - representing the name of the class implementing the {@link - TriggeringEventEvaluator} interface. A corresponding object will - be instantiated and assigned as the triggering event evaluator - for the SMTPAppender. + * The EvaluatorClass option takes a string value representing the + * name of the class implementing the {@link TriggeringEventEvaluator} + * interface. A corresponding object will be instantiated and assigned as + * the triggering event evaluator for the SMTPAppender. + * + * @deprecated replaced by {@link #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 {@link TriggeringEventEvaluator} for this instance of SMTPAppender. + */ + public void setEvaluator(TriggeringEventEvaluator evaluator) { + this.evaluator = evaluator; + } + + + /** The LocationInfo 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: log4j-dev-unsubscribe@logging.apache.org For additional commands, e-mail: log4j-dev-help@logging.apache.org