Scarab commit: svn commit: r10931 - trunk/src: conf/conf java/org/tigris/scarab/services/email
Hussayn Dabbous <[email protected]>
| Newsgroups | gmane.comp.java.scarab.cvs |
|---|---|
| Message-ID | <[email protected]> |
Author: dabbous
Date: 2010-02-27 15:14:19-0800
New Revision: 10931
Modified:
trunk/src/conf/conf/log4j.properties
trunk/src/java/org/tigris/scarab/services/email/TemplateHtmlEmail.java
Log:
Added email logging (for sent and unsent emails)
Added a new logger "email.log" which creates the file target/scarab/logs/email.log
optimized log entries for notifications.log
By default now all sent and all failed emails are reported into email.log
Modified: trunk/src/conf/conf/log4j.properties
Url: http://scarab.tigris.org/source/browse/scarab/trunk/src/conf/conf/log4j.properties?view=diff&pathrev=10931&r1=10930&r2=10931
==============================================================================
--- trunk/src/conf/conf/log4j.properties (original)
+++ trunk/src/conf/conf/log4j.properties 2010-02-27 15:14:19-0800
@@ -52,6 +52,15 @@
log4j.appender.notification.layout.conversionPattern = %d [%t] %-5p %c - %m%n
log4j.appender.notification.append = true
+# The email appender is used by EMail subsystem to log outgoing Emails
+
+log4j.category.email.log = INFO, emaillogger
+log4j.appender.emaillogger = org.apache.log4j.FileAppender
+log4j.appender.emaillogger.file = ${applicationRoot}/logs/email.log
+log4j.appender.emaillogger.layout = org.apache.log4j.PatternLayout
+log4j.appender.emaillogger.layout.conversionPattern = %d %-5p - %m%n
+log4j.appender.emaillogger.append = true
+
# This category is used by Turbine.
log4j.category.org.apache.turbine = INFO, turbine
Modified: trunk/src/java/org/tigris/scarab/services/email/TemplateHtmlEmail.java
Url: http://scarab.tigris.org/source/browse/scarab/trunk/src/java/org/tigris/scarab/services/email/TemplateHtmlEmail.java?view=diff&pathrev=10931&r1=10930&r2=10931
==============================================================================
--- trunk/src/java/org/tigris/scarab/services/email/TemplateHtmlEmail.java (original)
+++ trunk/src/java/org/tigris/scarab/services/email/TemplateHtmlEmail.java 2010-02-27 15:14:19-0800
@@ -57,8 +57,10 @@
import java.io.StringWriter;
import java.net.URL;
import java.util.Hashtable;
+import java.util.Iterator;
import javax.mail.MessagingException;
+import javax.mail.internet.InternetAddress;
import org.apache.commons.mail.HtmlEmail;
import org.apache.commons.mail.EmailException;
@@ -70,6 +72,7 @@
import org.apache.fulcrum.template.TurbineTemplate;
import org.apache.log4j.Logger;
+import org.tigris.scarab.om.Issue;
import org.tigris.scarab.services.email.VelocityEmail;
import org.tigris.scarab.tools.ScarabLocalizationTool;
import org.tigris.scarab.util.Email;
@@ -140,7 +143,8 @@
/** The map of embedded files. */
private Hashtable embmap = null;
- public static Logger log = Log.get(Email.class.getName());
+ public static Logger log = Log.get(Email.class.getName());
+ private static Logger emailLog = Log.get("email.log");
/**
* Constructor, sets the TemplateContext object.
@@ -305,9 +309,11 @@
try
{
mimeMessageId = super.send();
+ logSend();
}
catch( Exception e)
{
+
dumpContextToLog(e);
throw new EmailException("Cannot send email template", e);
}
@@ -315,9 +321,59 @@
return mimeMessageId;
}
+ private void logSend()
+ {
+ InternetAddress from = this.getFromAddress();
+ Iterator<InternetAddress> toIter = this.toList.iterator();
+ while(toIter.hasNext())
+ {
+ InternetAddress to = toIter.next();
+ emailLog.info("from:"+from.getAddress() + " - to:"+to.getAddress() + " - OK");
+ }
+ }
+
+ private void logFail(Exception e)
+ {
+ // Retrieve the IssueId if available:
+ Issue issue = (Issue) context.get("issue");
+ String issueId;
+ if( issue != null)
+ {
+ issueId = "issue:"+issue.getIdPrefix() + issue.getIdCount()+" ";
+ }
+ else
+ {
+ issueId = "";
+ }
+
+ InternetAddress from = this.getFromAddress();
+
+ Iterator<InternetAddress> toIter = this.toList.iterator();
+ while(toIter.hasNext())
+ {
+ InternetAddress to = toIter.next();
+ emailLog.error(issueId + "from:"+from.getAddress() + " - to:"+to.getAddress() + " - FAIL (" + e.getMessage()+")");
+ }
+
+ Iterator<InternetAddress> ccIter = this.ccList.iterator();
+ while(ccIter.hasNext())
+ {
+ InternetAddress cc = ccIter.next();
+ emailLog.error(issueId + "from:"+from.getAddress() + " - to:"+cc.getAddress() + " - FAIL (" + e.getMessage()+")");
+ }
+
+ }
+
private void dumpContextToLog(Exception e)
{
- log.error("context dump after exception ["+ e.getMessage()+"]");
+ logFail(e);
+ log.info("context dump after exception ["+ e.getMessage()+"]");
+ log.info("From:" + this.fromAddress.getAddress());
+ InternetAddress to = (InternetAddress)this.toList.get(0);
+ if(to != null)
+ {
+ log.info("to:" + to.getAddress());
+ }
String keystring=null;
Object val = null;
try
@@ -327,7 +383,7 @@
{
keystring = keys[i].toString();
val = context.get(keystring);
- log.error(" " + keystring + "=" + ((val==null)? "null (no value in context)":val.toString()) );
+ log.info(" " + keystring + "=" + ((val==null)? "null (no value in context)":val.toString()) );
}
}
catch(Exception ex)
@@ -336,7 +392,7 @@
log.error("key["+keystring+"]");
log.error("val["+val+"]");
}
- log.error("End of Email context dump");
+ log.info("End of Email context dump");
}
/**
------------------------------------------------------
http://scarab.tigris.org/ds/viewMessage.do?dsForumId=3577&dsMessageId=2452988