From: <fg...@us...> - 2008-02-20 10:07:22
|
Revision: 648 http://openutils.svn.sourceforge.net/openutils/?rev=648&view=rev Author: fgiust Date: 2008-02-20 02:01:32 -0800 (Wed, 20 Feb 2008) Log Message: ----------- reworked AlternateSMTPAppender Modified Paths: -------------- trunk/openutils-log4j/pom.xml trunk/openutils-log4j/src/main/java/it/openutils/log4j/AlternateSMTPAppender.java trunk/openutils-log4j/src/main/java/it/openutils/log4j/FilteredPatternLayout.java Added Paths: ----------- trunk/openutils-log4j/src/site/changes/ trunk/openutils-log4j/src/site/changes/changes.xml Modified: trunk/openutils-log4j/pom.xml =================================================================== --- trunk/openutils-log4j/pom.xml 2008-02-19 18:31:24 UTC (rev 647) +++ trunk/openutils-log4j/pom.xml 2008-02-20 10:01:32 UTC (rev 648) @@ -32,6 +32,11 @@ <version>1.2.14</version> </dependency> <dependency> + <groupId>commons-lang</groupId> + <artifactId>commons-lang</artifactId> + <version>2.3</version> + </dependency> + <dependency> <groupId>javax.mail</groupId> <artifactId>mail</artifactId> <version>1.4</version> Modified: trunk/openutils-log4j/src/main/java/it/openutils/log4j/AlternateSMTPAppender.java =================================================================== --- trunk/openutils-log4j/src/main/java/it/openutils/log4j/AlternateSMTPAppender.java 2008-02-19 18:31:24 UTC (rev 647) +++ trunk/openutils-log4j/src/main/java/it/openutils/log4j/AlternateSMTPAppender.java 2008-02-20 10:01:32 UTC (rev 648) @@ -36,7 +36,10 @@ import javax.mail.internet.MimeBodyPart; import javax.mail.internet.MimeMessage; import javax.mail.internet.MimeMultipart; +import javax.mail.internet.MimeUtility; +import org.apache.commons.lang.ArrayUtils; +import org.apache.commons.lang.StringUtils; import org.apache.log4j.AppenderSkeleton; import org.apache.log4j.Layout; import org.apache.log4j.Level; @@ -65,21 +68,21 @@ * <param name="SMTPHost" value="localhost" /> * <param name="Timeout" value="180" /> * <param name="Subject" value="[EXAMPLE] %m" /> - * <layout class="org.apache.log4j.PatternLayout"> + * <layout class="it.openutils.log4j.FilteredPatternLayout"> * <param name="ConversionPattern" value="%-5p %c %d{dd.MM.yyyy HH:mm:ss} -- %m%n" /> + * <param name="Header" + * value=" + * =================================== + * Myapp (production environment) + * Date: %d{dd.MM.yyyy HH:mm:ss} + * =================================== + * " /> * </layout> - * <param name="Header" - * value=" - * =================================== - * Myapp (production environment) - * Date: %d{dd.MM.yyyy HH:mm:ss} - * =================================== - * " /> * </appender> * </pre> * * @author Fabrizio Giustina - * @version $Id$ + * @version $Id: $ */ public class AlternateSMTPAppender extends AppenderSkeleton { @@ -94,7 +97,7 @@ private boolean locationInfo; - private Timer timer = new Timer(); + private Timer timer = new Timer("log4j mail appender", true); private TimerTask timerTask; @@ -137,6 +140,10 @@ public AlternateSMTPAppender() { this(new DefaultEvaluator()); + + // force loading this class + MimeBodyPart.class.getName(); + MimeUtility.class.getName(); } /** @@ -337,13 +344,12 @@ String t = layout.getHeader(); if (t != null) { + t = StringUtils.replace(t, "%o", Integer.toString(lea.getCount())); + t = StringUtils.replace(t, "%n", Layout.LINE_SEP); sbuf.append(t); + sbuf.append("\n"); } - sbuf.append("\nNumber of occurences: "); - sbuf.append(lea.getCount()); - sbuf.append("\n\n"); - LoggingEvent event = lea.getLoggingEvent(); if (this.subjectLayout != null) @@ -377,6 +383,7 @@ t = layout.getFooter(); if (t != null) { + t = StringUtils.replace(t, "%n", Layout.LINE_SEP); sbuf.append(t); } part.setContent(sbuf.toString(), layout.getContentType()); @@ -631,6 +638,12 @@ Object otherLem = other.loggingEvent.getMessage(); String[] otherThstr = other.loggingEvent.getThrowableStrRep(); + int length = Math.min(otherThstr.length, thstr.length); + length = Math.min(10, length); + + otherThstr = (String[]) ArrayUtils.subarray(otherThstr, 0, length); + String[] thisThstr = (String[]) ArrayUtils.subarray(thstr, 0, length); + if (lem == null) { if (otherLem != null) @@ -643,7 +656,7 @@ { return false; } - if (!Arrays.equals(thstr, otherThstr)) + if (!Arrays.equals(thisThstr, otherThstr)) { return false; } @@ -660,4 +673,4 @@ { return event.getLevel().isGreaterOrEqual(Level.ERROR); } -} +} \ No newline at end of file Modified: trunk/openutils-log4j/src/main/java/it/openutils/log4j/FilteredPatternLayout.java =================================================================== --- trunk/openutils-log4j/src/main/java/it/openutils/log4j/FilteredPatternLayout.java 2008-02-19 18:31:24 UTC (rev 647) +++ trunk/openutils-log4j/src/main/java/it/openutils/log4j/FilteredPatternLayout.java 2008-02-20 10:01:32 UTC (rev 648) @@ -40,20 +40,24 @@ * </pre> * * @author Fabrizio Giustina - * @version $Id$ + * @version $Id: FilteredPatternLayout.java 8589 2008-02-10 18:01:57Z fgiust $ */ public class FilteredPatternLayout extends PatternLayout { /** - * Line separator for stacktrace frames. + * Holds the list of filtered frames. */ - private static String lineSeparator = "\n"; + private Set<String> filteredFrames = new HashSet<String>(); + private String header; + + private String footer; + /** - * Holds the list of filtered frames. + * Line separator for stacktrace frames. */ - private Set<String> filteredFrames = new HashSet<String>(); + private static String lineSeparator = "\n"; static { @@ -68,16 +72,54 @@ } /** - * {@inheritDoc} + * Returns the header. + * @return the header */ @Override + public String getHeader() + { + return header; + } + + /** + * Sets the header. + * @param header the header to set + */ + public void setHeader(String header) + { + this.header = header; + } + + /** + * Returns the footer. + * @return the footer + */ + @Override + public String getFooter() + { + return footer; + } + + /** + * Sets the footer. + * @param footer the footer to set + */ + public void setFooter(String footer) + { + this.footer = footer; + } + + /** + * @see org.apache.log4j.Layout#ignoresThrowable() + */ + @Override public boolean ignoresThrowable() { return false; } /** - * {@inheritDoc} + * @see org.apache.log4j.PatternLayout#format(org.apache.log4j.spi.LoggingEvent) */ @Override public String format(LoggingEvent event) @@ -142,4 +184,5 @@ } return false; } + } Added: trunk/openutils-log4j/src/site/changes/changes.xml =================================================================== --- trunk/openutils-log4j/src/site/changes/changes.xml (rev 0) +++ trunk/openutils-log4j/src/site/changes/changes.xml 2008-02-20 10:01:32 UTC (rev 648) @@ -0,0 +1,18 @@ +<?xml version="1.0"?> +<!-- + "type" attribute can be: add, remove, update or fix. +--> +<document> + <properties> + <title>Changes</title> + <author email="fgiust(at)users.sourceforge.net">Fabrizio Giustina</author> + </properties> + <body> + <release version="2.0" date="2008-02-20" description="2.0.0"> + <action type="add" dev="fgiust"> + new it.openutils.log4j.AlternateSMTPAppender that aggregates similar log messages. + </action> + <action type="update" dev="fgiust">commons-lang dependency added</action> + </release> + </body> +</document> \ No newline at end of file Property changes on: trunk/openutils-log4j/src/site/changes/changes.xml ___________________________________________________________________ Name: svn:mime-type + text/plain Name: svn:keywords + Author Date Id Revision Name: svn:eol-style + native This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |