You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by bt...@apache.org on 2017/08/24 03:46:57 UTC

[32/38] james-project git commit: JAMES-2114 Deprecate the mailet Logging APIs

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/mailet/standard/src/main/java/org/apache/james/transport/mailets/ContentReplacer.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/main/java/org/apache/james/transport/mailets/ContentReplacer.java b/mailet/standard/src/main/java/org/apache/james/transport/mailets/ContentReplacer.java
index d2ab11b..a8cf514 100644
--- a/mailet/standard/src/main/java/org/apache/james/transport/mailets/ContentReplacer.java
+++ b/mailet/standard/src/main/java/org/apache/james/transport/mailets/ContentReplacer.java
@@ -30,19 +30,19 @@ import javax.mail.internet.ParseException;
 
 import org.apache.mailet.Mail;
 import org.apache.mailet.MailetException;
-import org.apache.mailet.base.GenericMailet;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.google.common.base.Optional;
 import com.google.common.base.Strings;
 
 public class ContentReplacer {
+    private static final Logger LOGGER = LoggerFactory.getLogger(ContentReplacer.class);
 
     private final boolean debug;
-    private final GenericMailet logOwner;
 
-    public ContentReplacer(boolean debug, GenericMailet logOwner) {
+    public ContentReplacer(boolean debug) {
         this.debug = debug;
-        this.logOwner = logOwner;
     }
 
     public String applyPatterns(List<ReplacingPattern> patterns, String text) {
@@ -70,7 +70,7 @@ public class ContentReplacer {
 
     private String replaceFirst(ReplacingPattern replacingPattern, Matcher matcher) {
         if (debug) {
-            logOwner.log("Subject rule match: " + replacingPattern.getMatcher());
+            LOGGER.debug("Subject rule match: " + replacingPattern.getMatcher());
         }
         return matcher.replaceFirst(replacingPattern.getSubstitution());
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/mailet/standard/src/main/java/org/apache/james/transport/mailets/HeadersToHTTP.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/main/java/org/apache/james/transport/mailets/HeadersToHTTP.java b/mailet/standard/src/main/java/org/apache/james/transport/mailets/HeadersToHTTP.java
index 25434ef..029615e 100644
--- a/mailet/standard/src/main/java/org/apache/james/transport/mailets/HeadersToHTTP.java
+++ b/mailet/standard/src/main/java/org/apache/james/transport/mailets/HeadersToHTTP.java
@@ -39,6 +39,8 @@ import org.apache.http.message.BasicNameValuePair;
 import org.apache.mailet.Experimental;
 import org.apache.mailet.Mail;
 import org.apache.mailet.base.GenericMailet;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Serialise the email and pass it to an HTTP call
@@ -56,6 +58,7 @@ import org.apache.mailet.base.GenericMailet;
  */
 @Experimental
 public class HeadersToHTTP extends GenericMailet {
+    private static final Logger LOGGER = LoggerFactory.getLogger(HeadersToHTTP.class);
 
     /**
      * The name of the header to be added.
@@ -90,7 +93,7 @@ public class HeadersToHTTP extends GenericMailet {
         }
 
         // record the result
-        log("I will attempt to deliver serialised messages to "
+        LOGGER.debug("I will attempt to deliver serialised messages to "
                 + targetUrl
                 + ". "
                 + ( ((parameterKey==null) || (parameterKey.length()<1)) ? "I will not add any fields to the post. " : "I will prepend: "	+ parameterKey + "=" + parameterValue + ". ")
@@ -106,19 +109,19 @@ public class HeadersToHTTP extends GenericMailet {
      */
     public void service(Mail mail) {
         try {
-            log(mail.getName() + "HeadersToHTTP: Starting");
+            LOGGER.debug(mail.getName() + "HeadersToHTTP: Starting");
             MimeMessage message = mail.getMessage();
             HashSet<NameValuePair> pairs = getNameValuePairs(message);
-            log(mail.getName() + "HeadersToHTTP: " + pairs.size() + " named value pairs found");
+            LOGGER.debug(mail.getName() + "HeadersToHTTP: " + pairs.size() + " named value pairs found");
             String result = httpPost(pairs);
             if (passThrough) {
                 addHeader(mail, true, result);
             } else {
                 mail.setState(Mail.GHOST);
             }
-        } catch (MessagingException | IOException me) {
-            log(me.getMessage());
-            addHeader(mail, false, me.getMessage());
+        } catch (MessagingException | IOException e) {
+            LOGGER.error("Exception", e);
+            addHeader(mail, false, e.getMessage());
         }
     }
 
@@ -131,7 +134,7 @@ public class HeadersToHTTP extends GenericMailet {
             }
             message.saveChanges();
         } catch (MessagingException e) {
-            log(e.getMessage());
+            LOGGER.error("Exception", e);
         }
     }
 
@@ -144,7 +147,7 @@ public class HeadersToHTTP extends GenericMailet {
             HttpUriRequest request = RequestBuilder.post(url).addParameters(pairs.toArray(new NameValuePair[0])).build();
             clientResponse = client.execute(request);
             String result = clientResponse.getStatusLine().getStatusCode() + ": " + clientResponse.getStatusLine();
-            log("HeadersToHTTP: " + result);
+            LOGGER.debug("HeadersToHTTP: " + result);
             return result;
         } finally {
             IOUtils.closeQuietly(clientResponse);

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/mailet/standard/src/main/java/org/apache/james/transport/mailets/LogMessage.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/main/java/org/apache/james/transport/mailets/LogMessage.java b/mailet/standard/src/main/java/org/apache/james/transport/mailets/LogMessage.java
index cfe5517..9d6eb84 100644
--- a/mailet/standard/src/main/java/org/apache/james/transport/mailets/LogMessage.java
+++ b/mailet/standard/src/main/java/org/apache/james/transport/mailets/LogMessage.java
@@ -32,6 +32,8 @@ import javax.mail.internet.MimeMessage;
 import org.apache.commons.io.IOUtils;
 import org.apache.mailet.Mail;
 import org.apache.mailet.base.GenericMailet;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.google.common.io.ByteStreams;
 
@@ -43,17 +45,27 @@ import com.google.common.io.ByteStreams;
  * @version This is $Revision: 1.8.4.2 $
  */
 public class LogMessage extends GenericMailet {
+    private static final Logger LOGGER = LoggerFactory.getLogger(LogMessage.class);
 
     /**
      * Whether this mailet should allow mails to be processed by additional mailets
      * or mark it as finished.
      */
+    private final Logger logger;
     private boolean passThrough = true;
     private boolean headers = true;
     private boolean body = true;
     private int bodyMax = 0;
     private String comment = null;
 
+    public LogMessage(Logger logger) {
+        this.logger = logger;
+    }
+
+    public LogMessage() {
+        this(LOGGER);
+    }
+
     @Override
     public void init() {
         try {
@@ -63,7 +75,7 @@ public class LogMessage extends GenericMailet {
             bodyMax = (getInitParameter("maxBody") == null) ? 0 : Integer.parseInt(getInitParameter("maxBody"));
             comment = getInitParameter("comment");
         } catch (Exception e) {
-            log("Caught exception while initializing LogMessage", e);
+            logger.error("Caught exception while initializing LogMessage", e);
         }
     }
 
@@ -74,14 +86,14 @@ public class LogMessage extends GenericMailet {
 
     @Override
     public void service(Mail mail) {
-        log("Logging mail " + mail.getName());
+        logger.info("Logging mail " + mail.getName());
         logComment();
         try {
             MimeMessage message = mail.getMessage();
             logHeaders(message);
             logBody(message);
         } catch (MessagingException | IOException e) {
-            log("Error logging message.", e);
+            logger.error("Error logging message.", e);
         }
         if (!passThrough) {
             mail.setState(Mail.GHOST);
@@ -90,16 +102,16 @@ public class LogMessage extends GenericMailet {
 
     private void logComment() {
         if (comment != null) {
-            log(comment);
+            logger.info(comment);
         }
     }
 
     @SuppressWarnings("unchecked")
     private void logHeaders(MimeMessage message) throws MessagingException {
         if (headers) {
-            log("\n");
+            logger.info("\n");
             for (String header : Collections.list((Enumeration<String>) message.getAllHeaderLines())) {
-                log(header + "\n");
+                logger.info(header + "\n");
             }
         }
     }
@@ -107,7 +119,7 @@ public class LogMessage extends GenericMailet {
     private void logBody(MimeMessage message) throws MessagingException, IOException {
         if (body) {
             InputStream inputStream = ByteStreams.limit(message.getRawInputStream(), lengthToLog(message));
-            log(IOUtils.toString(inputStream));
+            logger.info(IOUtils.toString(inputStream));
         }
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/mailet/standard/src/main/java/org/apache/james/transport/mailets/MailAttributesToMimeHeaders.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/main/java/org/apache/james/transport/mailets/MailAttributesToMimeHeaders.java b/mailet/standard/src/main/java/org/apache/james/transport/mailets/MailAttributesToMimeHeaders.java
index 8ce278b..0d71f52 100644
--- a/mailet/standard/src/main/java/org/apache/james/transport/mailets/MailAttributesToMimeHeaders.java
+++ b/mailet/standard/src/main/java/org/apache/james/transport/mailets/MailAttributesToMimeHeaders.java
@@ -30,6 +30,8 @@ import javax.mail.internet.MimeMessage;
 
 import org.apache.mailet.Mail;
 import org.apache.mailet.base.GenericMailet;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.google.common.base.Splitter;
 import com.google.common.collect.ImmutableMap;
@@ -48,6 +50,7 @@ import com.google.common.collect.ImmutableMap.Builder;
  * </code></pre>
  */
 public class MailAttributesToMimeHeaders extends GenericMailet {
+    private static final Logger LOGGER = LoggerFactory.getLogger(MailAttributesToMimeHeaders.class);
 
     private static final String CONFIGURATION_ERROR_MESSAGE = "Invalid config. Please use \"attributeName; headerName\"";
     private Map<String, String> mappings;
@@ -83,7 +86,7 @@ public class MailAttributesToMimeHeaders extends GenericMailet {
             }
             message.saveChanges();
         } catch (MessagingException e) {
-            log(e.getMessage());
+            LOGGER.error("Encountered exception", e);
         }
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/mailet/standard/src/main/java/org/apache/james/transport/mailets/MimeDecodingMailet.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/main/java/org/apache/james/transport/mailets/MimeDecodingMailet.java b/mailet/standard/src/main/java/org/apache/james/transport/mailets/MimeDecodingMailet.java
index 78fcf02..20db4cc 100644
--- a/mailet/standard/src/main/java/org/apache/james/transport/mailets/MimeDecodingMailet.java
+++ b/mailet/standard/src/main/java/org/apache/james/transport/mailets/MimeDecodingMailet.java
@@ -30,6 +30,8 @@ import org.apache.commons.io.IOUtils;
 import org.apache.mailet.Mail;
 import org.apache.mailet.MailetException;
 import org.apache.mailet.base.GenericMailet;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.google.common.base.Optional;
 import com.google.common.base.Strings;
@@ -47,6 +49,7 @@ import com.google.common.collect.ImmutableMap;
  * Then all this map attribute values will be replaced by their content.
  */
 public class MimeDecodingMailet extends GenericMailet {
+    private static final Logger LOGGER = LoggerFactory.getLogger(MimeDecodingMailet.class);
 
     public static final String ATTRIBUTE_PARAMETER_NAME = "attribute";
 
@@ -81,7 +84,7 @@ public class MimeDecodingMailet extends GenericMailet {
     private Map<String, byte[]> getAttributeContent(Mail mail) throws MailetException {
         Serializable attributeContent = mail.getAttribute(attribute);
         if (! (attributeContent instanceof Map)) {
-            log("Invalid attribute found into attribute "
+            LOGGER.debug("Invalid attribute found into attribute "
                     + attribute + "class Map expected but "
                     + attributeContent.getClass() + " found.");
             return ImmutableMap.of();
@@ -94,10 +97,10 @@ public class MimeDecodingMailet extends GenericMailet {
             MimeBodyPart mimeBodyPart = new MimeBodyPart(new ByteArrayInputStream((byte[]) rawMime));
             return Optional.fromNullable(IOUtils.toByteArray(mimeBodyPart.getInputStream()));
         } catch (IOException e) {
-            log("Error while extracting content from mime part", e);
+            LOGGER.error("Error while extracting content from mime part", e);
             return Optional.absent();
         } catch (ClassCastException e) {
-            log("Invalid map attribute types.", e);
+            LOGGER.error("Invalid map attribute types.", e);
             return Optional.absent();
         }
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/mailet/standard/src/main/java/org/apache/james/transport/mailets/OnlyText.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/main/java/org/apache/james/transport/mailets/OnlyText.java b/mailet/standard/src/main/java/org/apache/james/transport/mailets/OnlyText.java
index e26827c..4f8f2fd 100644
--- a/mailet/standard/src/main/java/org/apache/james/transport/mailets/OnlyText.java
+++ b/mailet/standard/src/main/java/org/apache/james/transport/mailets/OnlyText.java
@@ -20,6 +20,7 @@
 package org.apache.james.transport.mailets;
 
 import java.io.IOException;
+import java.io.UnsupportedEncodingException;
 import java.util.HashMap;
 
 import javax.mail.Message;
@@ -32,6 +33,8 @@ import org.apache.mailet.Experimental;
 import org.apache.mailet.Mail;
 import org.apache.mailet.MailetException;
 import org.apache.mailet.base.GenericMailet;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Keep only the text part of a message.
@@ -43,6 +46,8 @@ import org.apache.mailet.base.GenericMailet;
  */
 @Experimental
 public class OnlyText extends GenericMailet {
+    private static final Logger LOGGER = LoggerFactory.getLogger(OnlyText.class);
+
     private static final String PARAMETER_NAME_NOTEXT_PROCESSOR = "NoTextProcessor";
 
     private String optionsNotextProcessor = null;
@@ -67,8 +72,8 @@ public class OnlyText extends GenericMailet {
             Object content = null;
             try {
                 content = mp.getBodyPart(i).getContent();
-            } catch (java.io.UnsupportedEncodingException e) {
-                log("Caught error [" + e.getMessage() + "] in a text/plain part, skipping...");
+            } catch (UnsupportedEncodingException e) {
+                LOGGER.error("Caught error in a text/plain part, skipping...", e);
             }
             if (content != null) {
                 if (mp.getBodyPart(i).isMimeType("text/plain")) {

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/mailet/standard/src/main/java/org/apache/james/transport/mailets/RecoverAttachment.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/main/java/org/apache/james/transport/mailets/RecoverAttachment.java b/mailet/standard/src/main/java/org/apache/james/transport/mailets/RecoverAttachment.java
index ef11c4d..853395d 100644
--- a/mailet/standard/src/main/java/org/apache/james/transport/mailets/RecoverAttachment.java
+++ b/mailet/standard/src/main/java/org/apache/james/transport/mailets/RecoverAttachment.java
@@ -19,16 +19,6 @@
 
 package org.apache.james.transport.mailets;
 
-import org.apache.mailet.Experimental;
-import org.apache.mailet.base.GenericMailet;
-import org.apache.mailet.Mail;
-import org.apache.mailet.MailetException;
-
-import javax.mail.MessagingException;
-import javax.mail.internet.MimeBodyPart;
-import javax.mail.internet.MimeMessage;
-import javax.mail.internet.MimeMultipart;
-
 import java.io.BufferedInputStream;
 import java.io.ByteArrayInputStream;
 import java.io.IOException;
@@ -36,6 +26,18 @@ import java.io.InputStream;
 import java.util.Iterator;
 import java.util.Map;
 
+import javax.mail.MessagingException;
+import javax.mail.internet.MimeBodyPart;
+import javax.mail.internet.MimeMessage;
+import javax.mail.internet.MimeMultipart;
+
+import org.apache.mailet.Experimental;
+import org.apache.mailet.Mail;
+import org.apache.mailet.MailetException;
+import org.apache.mailet.base.GenericMailet;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
 /**
  * <p>
  * This mailet takes an attachment stored in an attribute and attach it back to
@@ -58,6 +60,7 @@ import java.util.Map;
  */
 @Experimental
 public class RecoverAttachment extends GenericMailet {
+    private static final Logger LOGGER = LoggerFactory.getLogger(RecoverAttachment.class);
 
     public static final String ATTRIBUTE_PARAMETER_NAME = "attribute";
 
@@ -76,7 +79,7 @@ public class RecoverAttachment extends GenericMailet {
                     + " is a mandatory parameter");
         }
 
-        log("RecoverAttachment is initialised with attribute [" + attributeName
+        LOGGER.debug("RecoverAttachment is initialised with attribute [" + attributeName
                 + "]");
     }
 
@@ -128,9 +131,9 @@ public class RecoverAttachment extends GenericMailet {
                 }
                 message.saveChanges();
             } catch (MessagingException e) {
-                log("MessagingException in recoverAttachment", e);
+                LOGGER.error("MessagingException in recoverAttachment", e);
             } catch (IOException e) {
-                log("IOException in recoverAttachment", e);
+                LOGGER.error("IOException in recoverAttachment", e);
             }
         }
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/mailet/standard/src/main/java/org/apache/james/transport/mailets/RemoveMimeHeader.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/main/java/org/apache/james/transport/mailets/RemoveMimeHeader.java b/mailet/standard/src/main/java/org/apache/james/transport/mailets/RemoveMimeHeader.java
index 99cc574..43edd76 100644
--- a/mailet/standard/src/main/java/org/apache/james/transport/mailets/RemoveMimeHeader.java
+++ b/mailet/standard/src/main/java/org/apache/james/transport/mailets/RemoveMimeHeader.java
@@ -29,6 +29,8 @@ import javax.mail.internet.MimeMessage;
 import org.apache.mailet.Mail;
 import org.apache.mailet.MailetException;
 import org.apache.mailet.base.GenericMailet;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.google.common.base.Splitter;
 import com.google.common.collect.ImmutableList;
@@ -46,6 +48,7 @@ import com.google.common.collect.ImmutableList;
  * 
  */
 public class RemoveMimeHeader extends GenericMailet {
+    private static final Logger LOGGER = LoggerFactory.getLogger(RemoveMimeHeader.class);
     
     private List<String> headers;
 
@@ -72,7 +75,7 @@ public class RemoveMimeHeader extends GenericMailet {
             }
             message.saveChanges();
         } catch (MessagingException e) {
-            log("Unable to remove headers: " + e.getMessage());
+            LOGGER.error("Unable to remove headers: ", e);
         }
     }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/mailet/standard/src/main/java/org/apache/james/transport/mailets/ReplaceContent.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/main/java/org/apache/james/transport/mailets/ReplaceContent.java b/mailet/standard/src/main/java/org/apache/james/transport/mailets/ReplaceContent.java
index 6da5c79..cdfe963 100644
--- a/mailet/standard/src/main/java/org/apache/james/transport/mailets/ReplaceContent.java
+++ b/mailet/standard/src/main/java/org/apache/james/transport/mailets/ReplaceContent.java
@@ -164,6 +164,6 @@ public class ReplaceContent extends GenericMailet {
 
     @Override
     public void service(Mail mail) throws MailetException {
-        new ContentReplacer(debug, this).replaceMailContentAndSubject(mail, replaceConfig, charset);
+        new ContentReplacer(debug).replaceMailContentAndSubject(mail, replaceConfig, charset);
     }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/mailet/standard/src/main/java/org/apache/james/transport/mailets/SerialiseToHTTP.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/main/java/org/apache/james/transport/mailets/SerialiseToHTTP.java b/mailet/standard/src/main/java/org/apache/james/transport/mailets/SerialiseToHTTP.java
index 337f490..11b8151 100644
--- a/mailet/standard/src/main/java/org/apache/james/transport/mailets/SerialiseToHTTP.java
+++ b/mailet/standard/src/main/java/org/apache/james/transport/mailets/SerialiseToHTTP.java
@@ -39,6 +39,8 @@ import org.apache.http.message.BasicNameValuePair;
 import org.apache.mailet.Experimental;
 import org.apache.mailet.Mail;
 import org.apache.mailet.base.GenericMailet;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Serialise the email and pass it to an HTTP call
@@ -56,6 +58,7 @@ import org.apache.mailet.base.GenericMailet;
  */
 @Experimental
 public class SerialiseToHTTP extends GenericMailet {
+    private static final Logger LOGGER = LoggerFactory.getLogger(SerialiseToHTTP.class);
 
     /**
      * The name of the header to be added.
@@ -96,7 +99,7 @@ public class SerialiseToHTTP extends GenericMailet {
         }
 
         // record the result
-        log("I will attempt to deliver serialised messages to "
+        LOGGER.debug("I will attempt to deliver serialised messages to "
                 + targetUrl
                 + " as "
                 + messageKeyName
@@ -125,7 +128,7 @@ public class SerialiseToHTTP extends GenericMailet {
                 mail.setState(Mail.GHOST);
             }
         } catch (MessagingException | IOException me) {
-            log(me.getMessage());
+            LOGGER.error("Messaging exception", me);
             addHeader(mail, false, me.getMessage());
         }
     }
@@ -138,8 +141,8 @@ public class SerialiseToHTTP extends GenericMailet {
                 message.setHeader("X-toHTTPFailure", errorMessage);
             }
             message.saveChanges();
-        } catch (MessagingException e) {
-            log(e.getMessage());
+        } catch (MessagingException me) {
+            LOGGER.error("Messaging exception", me);
         }
     }
 
@@ -156,7 +159,7 @@ public class SerialiseToHTTP extends GenericMailet {
 
         if( data.length>1 && data[1]!=null ) {
             requestBuilder.addParameter(data[1].getName(),data[1].getValue());
-            log( data[1].getName() + "::" + data[1].getValue() );
+            LOGGER.debug( data[1].getName() + "::" + data[1].getValue() );
         }
 
         CloseableHttpClient client = HttpClientBuilder.create().build();
@@ -165,15 +168,15 @@ public class SerialiseToHTTP extends GenericMailet {
             clientResponse = client.execute(requestBuilder.build());
 
             if (clientResponse.getStatusLine().getStatusCode() != HttpStatus.SC_OK) {
-                log("POST failed: " + clientResponse.getStatusLine());
+                LOGGER.debug("POST failed: " + clientResponse.getStatusLine());
                 return clientResponse.getStatusLine().toString();
             }
             return null;
         } catch (ClientProtocolException e) {
-            log("Fatal protocol violation: " + e.getMessage());
+            LOGGER.error("Fatal protocol violation: ", e);
             return "Fatal protocol violation: " + e.getMessage();
         } catch (IOException e) {
-            log("Fatal transport error: " + e.getMessage());
+            LOGGER.debug("Fatal transport error: ", e);
             return "Fatal transport error: " + e.getMessage();
         } finally {
             IOUtils.closeQuietly(clientResponse);

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/mailet/standard/src/main/java/org/apache/james/transport/mailets/SetMimeHeader.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/main/java/org/apache/james/transport/mailets/SetMimeHeader.java b/mailet/standard/src/main/java/org/apache/james/transport/mailets/SetMimeHeader.java
index 46c77fe..70c7c19 100644
--- a/mailet/standard/src/main/java/org/apache/james/transport/mailets/SetMimeHeader.java
+++ b/mailet/standard/src/main/java/org/apache/james/transport/mailets/SetMimeHeader.java
@@ -22,14 +22,15 @@
 package org.apache.james.transport.mailets;
 
 import javax.mail.MessagingException;
-import javax.mail.internet.MimeMessage ;
+import javax.mail.internet.MimeMessage;
 
-import org.apache.mailet.base.GenericMailet ;
+import org.apache.mailet.Mail;
+import org.apache.mailet.base.GenericMailet;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.google.common.base.Strings;
 
-import org.apache.mailet.Mail ;
-
 /**
  * <p>Adds a specified header and value to the message.</p>
  *
@@ -45,6 +46,7 @@ import org.apache.mailet.Mail ;
  * @version 1.0.0, 2002-09-11
  */
 public class SetMimeHeader extends GenericMailet {
+    private static final Logger LOGGER = LoggerFactory.getLogger(SetMimeHeader.class);
 
     private String headerName;
     private String headerValue;
@@ -67,7 +69,7 @@ public class SetMimeHeader extends GenericMailet {
             message.addHeader(headerName, headerValue);
             message.saveChanges();
         } catch (javax.mail.MessagingException me) {
-            log(me.getMessage());
+            LOGGER.error("Encountered exception", me);
         }
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/mailet/standard/src/main/java/org/apache/james/transport/mailets/StripAttachment.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/main/java/org/apache/james/transport/mailets/StripAttachment.java b/mailet/standard/src/main/java/org/apache/james/transport/mailets/StripAttachment.java
index dd20ed4..b481680 100644
--- a/mailet/standard/src/main/java/org/apache/james/transport/mailets/StripAttachment.java
+++ b/mailet/standard/src/main/java/org/apache/james/transport/mailets/StripAttachment.java
@@ -49,6 +49,8 @@ import org.apache.james.mime4j.codec.DecoderUtil;
 import org.apache.mailet.Mail;
 import org.apache.mailet.MailetException;
 import org.apache.mailet.base.GenericMailet;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.google.common.annotations.VisibleForTesting;
 import com.google.common.base.Optional;
@@ -81,6 +83,7 @@ import com.google.common.collect.ImmutableList;
  * </p>
  */
 public class StripAttachment extends GenericMailet {
+    private static final Logger LOGGER = LoggerFactory.getLogger(StripAttachment.class);
 
     private static final String MULTIPART_MIME_TYPE = "multipart/*";
     public static final String PATTERN_PARAMETER_NAME = "pattern";
@@ -193,7 +196,7 @@ public class StripAttachment extends GenericMailet {
           logMessage.append(attributeName);
           logMessage.append("]");
       }
-      log(logMessage.toString());
+      LOGGER.debug(logMessage.toString());
     }
     
     /**
@@ -289,7 +292,7 @@ public class StripAttachment extends GenericMailet {
             }
             return atLeastOneRemoved || subpartHasBeenChanged;
         } catch (Exception e) {
-            log("Failing while analysing part for attachments (StripAttachment mailet).", e);
+            LOGGER.error("Failing while analysing part for attachments (StripAttachment mailet).", e);
             return false;
         }
     }
@@ -383,7 +386,7 @@ public class StripAttachment extends GenericMailet {
     private String renameWithConfigurationPattern(String fileName) {
         if (filenameReplacingPatterns != null) {
             boolean debug = false;
-            return new ContentReplacer(debug, this).applyPatterns(filenameReplacingPatterns, fileName);
+            return new ContentReplacer(debug).applyPatterns(filenameReplacingPatterns, fileName);
         }
         return fileName;
     }
@@ -409,7 +412,7 @@ public class StripAttachment extends GenericMailet {
         boolean result = isMatchingPattern(name, regExPattern).or(false) 
                 || !isMatchingPattern(name, notRegExPattern).or(true);
 
-        log("attachment " + name + " " + ((result) ? "matches" : "does not match"));
+        LOGGER.debug("attachment " + name + " " + ((result) ? "matches" : "does not match"));
         return result;
     }
 
@@ -438,12 +441,12 @@ public class StripAttachment extends GenericMailet {
         try {
             File outputFile = outputFile(part, fileName);
 
-            log("saving content of " + outputFile.getName() + "...");
+            LOGGER.debug("saving content of " + outputFile.getName() + "...");
             IOUtils.copy(part.getInputStream(), new FileOutputStream(outputFile));
 
             return Optional.of(outputFile.getName());
         } catch (Exception e) {
-            log("Error while saving contents of", e);
+            LOGGER.error("Error while saving contents of", e);
             return Optional.absent();
         }
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/mailet/standard/src/main/java/org/apache/james/transport/mailets/ToProcessor.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/main/java/org/apache/james/transport/mailets/ToProcessor.java b/mailet/standard/src/main/java/org/apache/james/transport/mailets/ToProcessor.java
index 5a54925..1c6b3fa 100644
--- a/mailet/standard/src/main/java/org/apache/james/transport/mailets/ToProcessor.java
+++ b/mailet/standard/src/main/java/org/apache/james/transport/mailets/ToProcessor.java
@@ -26,6 +26,8 @@ import javax.mail.MessagingException;
 import org.apache.mailet.Mail;
 import org.apache.mailet.MailetException;
 import org.apache.mailet.base.GenericMailet;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.google.common.base.Optional;
 
@@ -43,6 +45,7 @@ import com.google.common.base.Optional;
  *
  */
 public class ToProcessor extends GenericMailet {
+    private static final Logger LOGGER = LoggerFactory.getLogger(ToProcessor.class);
 
     private boolean debug;
     private String processor;
@@ -70,7 +73,7 @@ public class ToProcessor extends GenericMailet {
     @Override
     public void service(Mail mail) throws MessagingException {
         if (debug) {
-            log(String.format("Sending mail %s to %s", mail, processor));
+            LOGGER.debug(String.format("Sending mail %s to %s", mail, processor));
         }
         mail.setState(processor);
         if (noticeText.isPresent()) {

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/mailet/standard/src/main/java/org/apache/james/transport/mailets/UseHeaderRecipients.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/main/java/org/apache/james/transport/mailets/UseHeaderRecipients.java b/mailet/standard/src/main/java/org/apache/james/transport/mailets/UseHeaderRecipients.java
index ea45cb2..543959e 100644
--- a/mailet/standard/src/main/java/org/apache/james/transport/mailets/UseHeaderRecipients.java
+++ b/mailet/standard/src/main/java/org/apache/james/transport/mailets/UseHeaderRecipients.java
@@ -38,6 +38,8 @@ import org.apache.mailet.Experimental;
 import org.apache.mailet.Mail;
 import org.apache.mailet.MailAddress;
 import org.apache.mailet.base.GenericMailet;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.google.common.base.Splitter;
 import com.google.common.base.Throwables;
@@ -68,6 +70,7 @@ import com.google.common.collect.ImmutableList;
  */
 @Experimental
 public class UseHeaderRecipients extends GenericMailet {
+    private static final Logger LOGGER = LoggerFactory.getLogger(UseHeaderRecipients.class);
 
     /**
      * Controls certain log messages
@@ -96,8 +99,8 @@ public class UseHeaderRecipients extends GenericMailet {
         mail.setRecipients(headersAddresses(message));
 
         if (isDebug) {
-            log("All recipients = " + mail.getRecipients());
-            log("Reprocessing mail using recipients in message headers");
+            LOGGER.debug("All recipients = " + mail.getRecipients());
+            LOGGER.debug("Reprocessing mail using recipients in message headers");
         }
 
         // Return email to the "root" process.
@@ -137,7 +140,7 @@ public class UseHeaderRecipients extends GenericMailet {
      */
     private Collection<MailAddress> getHeaderMailAddresses(MimeMessage message, String name) throws MessagingException {
         if (isDebug) {
-            log("Checking " + name + " headers");
+            LOGGER.debug("Checking " + name + " headers");
         }
         String[] headers = message.getHeader(name);
         ImmutableList.Builder<MailAddress> addresses = ImmutableList.builder();
@@ -160,7 +163,7 @@ public class UseHeaderRecipients extends GenericMailet {
         ImmutableList.Builder<MailAddress> result = ImmutableList.builder();
         for (String headerPart : headerParts) {
             if (isDebug) {
-                log("Address = " + headerPart);
+                LOGGER.debug("Address = " + headerPart);
             }
             result.addAll(readMailAddresses(headerPart));
         }

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/mailet/standard/src/main/java/org/apache/james/transport/mailets/debug/Counter.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/main/java/org/apache/james/transport/mailets/debug/Counter.java b/mailet/standard/src/main/java/org/apache/james/transport/mailets/debug/Counter.java
index 0088215..b9900c4 100644
--- a/mailet/standard/src/main/java/org/apache/james/transport/mailets/debug/Counter.java
+++ b/mailet/standard/src/main/java/org/apache/james/transport/mailets/debug/Counter.java
@@ -21,8 +21,10 @@
 
 package org.apache.james.transport.mailets.debug;
 
-import org.apache.mailet.base.GenericMailet;
 import org.apache.mailet.Mail;
+import org.apache.mailet.base.GenericMailet;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * A simple in memory counter.  Designed to count messages sent to this recipient
@@ -30,6 +32,7 @@ import org.apache.mailet.Mail;
  *
  */
 public class Counter extends GenericMailet {
+    private static final Logger LOGGER = LoggerFactory.getLogger(Counter.class);
 
     /**
      * The number of mails processed by this mailet
@@ -43,7 +46,7 @@ public class Counter extends GenericMailet {
      */
     public void service(Mail mail) {
         counter++;
-        log(counter + "");
+        LOGGER.info(Integer.toString(counter));
         mail.setState(Mail.GHOST);
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/mailet/standard/src/main/java/org/apache/james/transport/mailets/debug/DumpSystemErr.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/main/java/org/apache/james/transport/mailets/debug/DumpSystemErr.java b/mailet/standard/src/main/java/org/apache/james/transport/mailets/debug/DumpSystemErr.java
index 8b2b9fd..f3c4a95 100644
--- a/mailet/standard/src/main/java/org/apache/james/transport/mailets/debug/DumpSystemErr.java
+++ b/mailet/standard/src/main/java/org/apache/james/transport/mailets/debug/DumpSystemErr.java
@@ -21,18 +21,22 @@
 
 package org.apache.james.transport.mailets.debug;
 
-import org.apache.mailet.base.GenericMailet;
-import org.apache.mailet.Mail;
+import java.io.IOException;
 
 import javax.mail.MessagingException;
 import javax.mail.internet.MimeMessage;
-import java.io.IOException;
+
+import org.apache.mailet.Mail;
+import org.apache.mailet.base.GenericMailet;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Debugging purpose Mailet.  Sends the message to System.err
  *
  */
 public class DumpSystemErr extends GenericMailet {
+    private static final Logger LOGGER = LoggerFactory.getLogger(DumpSystemErr.class);
 
     /**
      * Writes the message to System.err .
@@ -46,7 +50,7 @@ public class DumpSystemErr extends GenericMailet {
             MimeMessage message = mail.getMessage();
             message.writeTo(System.err);
         } catch (IOException ioe) {
-            log("error printing message", ioe);
+            LOGGER.error("error printing message", ioe);
         }
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/mailet/standard/src/main/java/org/apache/james/transport/matchers/AbstractQuotaMatcher.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/main/java/org/apache/james/transport/matchers/AbstractQuotaMatcher.java b/mailet/standard/src/main/java/org/apache/james/transport/matchers/AbstractQuotaMatcher.java
index 7b7de31..d5b2601 100755
--- a/mailet/standard/src/main/java/org/apache/james/transport/matchers/AbstractQuotaMatcher.java
+++ b/mailet/standard/src/main/java/org/apache/james/transport/matchers/AbstractQuotaMatcher.java
@@ -30,6 +30,8 @@ import org.apache.mailet.Experimental;
 import org.apache.mailet.Mail;
 import org.apache.mailet.MailAddress;
 import org.apache.mailet.base.GenericMatcher;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * <P>Abstract matcher checking whether a recipient has exceeded a maximum allowed quota.</P>
@@ -41,7 +43,8 @@ import org.apache.mailet.base.GenericMatcher;
  * @since 2.2.0
  */
 @Experimental
-abstract public class AbstractQuotaMatcher extends GenericMatcher { 
+abstract public class AbstractQuotaMatcher extends GenericMatcher {
+    private static final Logger LOGGER = LoggerFactory.getLogger(AbstractQuotaMatcher.class);
 
     /**
      * Standard matcher entrypoint.
@@ -76,10 +79,10 @@ abstract public class AbstractQuotaMatcher extends GenericMatcher {
     protected boolean isOverQuota(MailAddress address, Mail mail) {
         try {
             boolean over = getQuota(address, mail) < getUsed(address, mail);
-            if (over) log(address + " is over quota.");
+            if (over) LOGGER.info(address + " is over quota.");
             return over;
         } catch (Throwable e) {
-            log("Exception checking quota for: " + address, e);
+            LOGGER.error("Exception checking quota for: " + address, e);
             return false;
         }
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/mailet/standard/src/main/java/org/apache/james/transport/matchers/AttachmentFileNameIs.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/main/java/org/apache/james/transport/matchers/AttachmentFileNameIs.java b/mailet/standard/src/main/java/org/apache/james/transport/matchers/AttachmentFileNameIs.java
index b1f0f90..5195543 100755
--- a/mailet/standard/src/main/java/org/apache/james/transport/matchers/AttachmentFileNameIs.java
+++ b/mailet/standard/src/main/java/org/apache/james/transport/matchers/AttachmentFileNameIs.java
@@ -39,6 +39,8 @@ import org.apache.mailet.Experimental;
 import org.apache.mailet.Mail;
 import org.apache.mailet.MailAddress;
 import org.apache.mailet.base.GenericMatcher;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 
 /**
@@ -57,6 +59,7 @@ import org.apache.mailet.base.GenericMatcher;
  */
 @Experimental
 public class AttachmentFileNameIs extends GenericMatcher {
+    private static final Logger LOGGER = LoggerFactory.getLogger(AttachmentFileNameIs.class);
     
     /** Unzip request parameter. */
     protected static final String UNZIP_REQUEST_PARAMETER = "-z";
@@ -105,12 +108,12 @@ public class AttachmentFileNameIs extends GenericMatcher {
             // check possible parameters at the beginning of the condition
             if (theMasks.size() == 0 && fileName.equalsIgnoreCase(UNZIP_REQUEST_PARAMETER)) {
                 unzipIsRequested = true;
-                log("zip file analysis requested");
+                LOGGER.info("zip file analysis requested");
                 continue;
             }
             if (theMasks.size() == 0 && fileName.equalsIgnoreCase(DEBUG_REQUEST_PARAMETER)) {
                 isDebug = true;
-                log("debug requested");
+                LOGGER.info("debug requested");
                 continue;
             }
             Mask mask = new Mask(); 
@@ -145,7 +148,7 @@ public class AttachmentFileNameIs extends GenericMatcher {
             
         } catch (Exception e) {
             if (isDebug) {
-                log("Malformed message", e);
+                LOGGER.debug("Malformed message", e);
             }
             throw new MessagingException("Malformed message", e);
         }
@@ -198,7 +201,7 @@ public class AttachmentFileNameIs extends GenericMatcher {
                 // check the file name
                 if (matchFound(fileName)) {
                     if (isDebug) {
-                        log("matched " + fileName);
+                        LOGGER.debug("matched " + fileName);
                     }
                     return true;
                 }
@@ -254,7 +257,7 @@ public class AttachmentFileNameIs extends GenericMatcher {
                 String fileName = zipEntry.getName();
                 if (matchFound(fileName)) {
                     if (isDebug) {
-                        log("matched " + part.getFileName() + "(" + fileName + ")");
+                        LOGGER.debug("matched " + part.getFileName() + "(" + fileName + ")");
                     }
                     return true;
                 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/mailet/standard/src/main/java/org/apache/james/transport/matchers/HasHabeasWarrantMark.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/main/java/org/apache/james/transport/matchers/HasHabeasWarrantMark.java b/mailet/standard/src/main/java/org/apache/james/transport/matchers/HasHabeasWarrantMark.java
index 353ddf5..5b7e757 100644
--- a/mailet/standard/src/main/java/org/apache/james/transport/matchers/HasHabeasWarrantMark.java
+++ b/mailet/standard/src/main/java/org/apache/james/transport/matchers/HasHabeasWarrantMark.java
@@ -21,14 +21,17 @@
 
 package org.apache.james.transport.matchers;
 
-import org.apache.mailet.Experimental;
-import org.apache.mailet.base.GenericMatcher;
-import org.apache.mailet.Mail;
-import org.apache.mailet.MailAddress;
+import java.util.Collection;
 
 import javax.mail.MessagingException;
 import javax.mail.internet.MimeMessage;
-import java.util.Collection;
+
+import org.apache.mailet.Experimental;
+import org.apache.mailet.Mail;
+import org.apache.mailet.MailAddress;
+import org.apache.mailet.base.GenericMatcher;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * <p>This matcher tests for the Hebeas Warrant Mark.
@@ -70,6 +73,8 @@ import java.util.Collection;
 @Experimental
 public class HasHabeasWarrantMark extends GenericMatcher
 {
+    private static final Logger LOGGER = LoggerFactory.getLogger(HasHabeasWarrantMark.class);
+
     public static final String[][] warrantMark =
     {
         { "X-Habeas-SWE-1", "winter into spring" }, 
@@ -102,7 +107,7 @@ public class HasHabeasWarrantMark extends GenericMatcher
 
                 if (!(requiredValue.equals(headerValue))) return null;
             } catch (Exception e) {
-                log(e.toString());
+                LOGGER.info(e.toString());
                 return null;            //if we get an exception, don't validate the mark
             }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/mailet/standard/src/main/java/org/apache/james/transport/matchers/SenderHostIs.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/main/java/org/apache/james/transport/matchers/SenderHostIs.java b/mailet/standard/src/main/java/org/apache/james/transport/matchers/SenderHostIs.java
index 98fbf39..073aad3 100755
--- a/mailet/standard/src/main/java/org/apache/james/transport/matchers/SenderHostIs.java
+++ b/mailet/standard/src/main/java/org/apache/james/transport/matchers/SenderHostIs.java
@@ -27,6 +27,8 @@ import java.util.Locale;
 import org.apache.mailet.Mail;
 import org.apache.mailet.MailAddress;
 import org.apache.mailet.base.GenericMatcher;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.google.common.annotations.VisibleForTesting;
 import com.google.common.base.Preconditions;
@@ -46,6 +48,7 @@ import com.google.common.collect.ImmutableSet;
  * @version 1.0.0, 2002-09-10
  */
 public class SenderHostIs extends GenericMatcher {
+    private static final Logger LOGGER = LoggerFactory.getLogger(SenderHostIs.class);
 
     private Collection<String> senderHosts;
     
@@ -77,7 +80,7 @@ public class SenderHostIs extends GenericMatcher {
                 return mail.getRecipients();
             }
         } catch (Exception e) {
-            log(e.getMessage());
+            LOGGER.info(e.getMessage());
         }
 
         return null;    //No match.

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/mailet/standard/src/test/java/org/apache/james/transport/mailets/ContentReplacerTest.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/test/java/org/apache/james/transport/mailets/ContentReplacerTest.java b/mailet/standard/src/test/java/org/apache/james/transport/mailets/ContentReplacerTest.java
index 0144623..479bfd4 100644
--- a/mailet/standard/src/test/java/org/apache/james/transport/mailets/ContentReplacerTest.java
+++ b/mailet/standard/src/test/java/org/apache/james/transport/mailets/ContentReplacerTest.java
@@ -30,7 +30,6 @@ import java.util.regex.Pattern;
 import javax.mail.internet.MimeMessage;
 
 import org.apache.mailet.Mail;
-import org.apache.mailet.base.GenericMailet;
 import org.junit.Test;
 
 import com.google.common.base.Charsets;
@@ -41,8 +40,7 @@ public class ContentReplacerTest {
 
     @Test
     public void applyPatternsShouldModifyWhenMatching() {
-        GenericMailet mailet = mock(GenericMailet.class);
-        ContentReplacer testee = new ContentReplacer(false, mailet);
+        ContentReplacer testee = new ContentReplacer(false);
 
         ImmutableList<ReplacingPattern> patterns = ImmutableList.of(new ReplacingPattern(Pattern.compile("test"), false, "TEST"),
             new ReplacingPattern(Pattern.compile("a"), true, "e"),
@@ -54,8 +52,7 @@ public class ContentReplacerTest {
 
     @Test
     public void applyPatternsShouldNotRepeatWhenNotAskedFor() {
-        GenericMailet mailet = mock(GenericMailet.class);
-        ContentReplacer testee = new ContentReplacer(false, mailet);
+        ContentReplacer testee = new ContentReplacer(false);
 
         ImmutableList<ReplacingPattern> patterns = ImmutableList.of(new ReplacingPattern(Pattern.compile("test"), false, "TEST"));
         String value = testee.applyPatterns(patterns, "test test");
@@ -65,8 +62,7 @@ public class ContentReplacerTest {
 
     @Test
     public void applyPatternsShouldRepeatWhenAskedFor() {
-        GenericMailet mailet = mock(GenericMailet.class);
-        ContentReplacer testee = new ContentReplacer(false, mailet);
+        ContentReplacer testee = new ContentReplacer(false);
 
         ImmutableList<ReplacingPattern> patterns = ImmutableList.of(new ReplacingPattern(Pattern.compile("test"), true, "TEST"));
         String value = testee.applyPatterns(patterns, "test test");
@@ -76,8 +72,7 @@ public class ContentReplacerTest {
 
     @Test
     public void applyPatternShouldModifyWhenMatchingBody() throws Exception {
-        GenericMailet mailet = mock(GenericMailet.class);
-        ContentReplacer testee = new ContentReplacer(false, mailet);
+        ContentReplacer testee = new ContentReplacer(false);
 
         Mail mail = mock(Mail.class);
         MimeMessage mimeMessage = mock(MimeMessage.class);
@@ -101,8 +96,7 @@ public class ContentReplacerTest {
 
     @Test
     public void applyPatternShouldModifyWhenMatchingSubject() throws Exception {
-        GenericMailet mailet = mock(GenericMailet.class);
-        ContentReplacer testee = new ContentReplacer(false, mailet);
+        ContentReplacer testee = new ContentReplacer(false);
 
         Mail mail = mock(Mail.class);
         MimeMessage mimeMessage = mock(MimeMessage.class);
@@ -126,8 +120,7 @@ public class ContentReplacerTest {
 
     @Test
     public void applyPatternShouldKeepPreviousCharsetWhenNoneSet() throws Exception {
-        GenericMailet mailet = mock(GenericMailet.class);
-        ContentReplacer testee = new ContentReplacer(false, mailet);
+        ContentReplacer testee = new ContentReplacer(false);
 
         Mail mail = mock(Mail.class);
         MimeMessage mimeMessage = mock(MimeMessage.class);

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/mailet/standard/src/test/java/org/apache/james/transport/mailets/LogMessageTest.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/test/java/org/apache/james/transport/mailets/LogMessageTest.java b/mailet/standard/src/test/java/org/apache/james/transport/mailets/LogMessageTest.java
index 487bce7..f3e1c3a 100644
--- a/mailet/standard/src/test/java/org/apache/james/transport/mailets/LogMessageTest.java
+++ b/mailet/standard/src/test/java/org/apache/james/transport/mailets/LogMessageTest.java
@@ -20,8 +20,8 @@
 package org.apache.james.transport.mailets;
 
 import static org.assertj.core.api.Assertions.assertThat;
-import static org.mockito.Matchers.eq;
 import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.eq;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.verifyNoMoreInteractions;
@@ -64,7 +64,7 @@ public class LogMessageTest {
         mailContext = FakeMailContext.builder()
                 .logger(logger)
                 .build();
-        mailet = new LogMessage();
+        mailet = new LogMessage(logger);
     }
 
     @Test

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/server/container/util/src/main/java/org/apache/james/util/bayesian/JDBCBayesianAnalyzer.java
----------------------------------------------------------------------
diff --git a/server/container/util/src/main/java/org/apache/james/util/bayesian/JDBCBayesianAnalyzer.java b/server/container/util/src/main/java/org/apache/james/util/bayesian/JDBCBayesianAnalyzer.java
index 34530b5..003a5a2 100644
--- a/server/container/util/src/main/java/org/apache/james/util/bayesian/JDBCBayesianAnalyzer.java
+++ b/server/container/util/src/main/java/org/apache/james/util/bayesian/JDBCBayesianAnalyzer.java
@@ -45,7 +45,7 @@ import org.slf4j.LoggerFactory;
  * @since 2.3.0
  */
 
-abstract public class JDBCBayesianAnalyzer extends BayesianAnalyzer {
+public class JDBCBayesianAnalyzer extends BayesianAnalyzer {
 
     private static final Logger LOGGER = LoggerFactory.getLogger(JDBCBayesianAnalyzer.class);
 
@@ -53,22 +53,9 @@ abstract public class JDBCBayesianAnalyzer extends BayesianAnalyzer {
     public final static String DATABASE_LOCK = "database lock";
 
     /**
-     * An abstract method which child classes override to handle logging of
-     * errors in their particular environments.
-     * 
-     * @param errorString
-     *            the error message generated
-     */
-    abstract protected void delegatedLog(String errorString);
-
-    /**
      * The JDBCUtil helper class
      */
-    private final JDBCUtil theJDBCUtil = new JDBCUtil() {
-        protected void delegatedLog(String logString) {
-            JDBCBayesianAnalyzer.this.delegatedLog(logString);
-        }
-    };
+    private final JDBCUtil theJDBCUtil = new JDBCUtil();
 
     /** Contains all of the sql strings for this component. */
     private final SqlResources sqlQueries = new SqlResources();
@@ -174,7 +161,7 @@ abstract public class JDBCBayesianAnalyzer extends BayesianAnalyzer {
                 }
             }
             // Verbose.
-            delegatedLog("Ham tokens count: " + ham.size());
+            LOGGER.debug("Ham tokens count: " + ham.size());
 
             rs.close();
             pstmt.close();
@@ -194,7 +181,7 @@ abstract public class JDBCBayesianAnalyzer extends BayesianAnalyzer {
             }
 
             // Verbose.
-            delegatedLog("Spam tokens count: " + spam.size());
+            LOGGER.error("Spam tokens count: " + spam.size());
 
             rs.close();
             pstmt.close();
@@ -417,7 +404,7 @@ abstract public class JDBCBayesianAnalyzer extends BayesianAnalyzer {
 
             StringBuffer logBuffer;
             logBuffer = new StringBuffer(64).append("Created table '").append(tableName).append("' using sqlResources string '").append(createSqlStringName).append("'.");
-            delegatedLog(logBuffer.toString());
+            LOGGER.error(logBuffer.toString());
 
         } finally {
             theJDBCUtil.closeJDBCStatement(createStatement);

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/server/container/util/src/main/java/org/apache/james/util/sql/JDBCUtil.java
----------------------------------------------------------------------
diff --git a/server/container/util/src/main/java/org/apache/james/util/sql/JDBCUtil.java b/server/container/util/src/main/java/org/apache/james/util/sql/JDBCUtil.java
index 43c29a4..02f5e53 100644
--- a/server/container/util/src/main/java/org/apache/james/util/sql/JDBCUtil.java
+++ b/server/container/util/src/main/java/org/apache/james/util/sql/JDBCUtil.java
@@ -26,25 +26,17 @@ import java.sql.SQLException;
 import java.sql.Statement;
 import java.util.Locale;
 
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
 /**
  * <p>
  * Helper class for managing common JDBC tasks.
  * </p>
- * 
- * <p>
- * This class is abstract to allow implementations to take advantage of
- * different logging capabilities/interfaces in different parts of the code.
- * </p>
+ *
  */
-abstract public class JDBCUtil {
-    /**
-     * An abstract method which child classes override to handle logging of
-     * errors in their particular environments.
-     * 
-     * @param errorString
-     *            the error message generated
-     */
-    abstract protected void delegatedLog(String errorString);
+public class JDBCUtil {
+    private static final Logger LOGGER = LoggerFactory.getLogger(JDBCUtil.class);
 
     /**
      * Checks database metadata to see if a table exists. Try UPPER, lower, and
@@ -142,7 +134,7 @@ abstract public class JDBCUtil {
             }
         } catch (SQLException sqle) {
             // Log exception and continue
-            subclassLogWrapper("Unexpected exception while closing database connection.");
+            LOGGER.error("Unexpected exception while closing database connection.", sqle);
         }
     }
 
@@ -159,7 +151,7 @@ abstract public class JDBCUtil {
             }
         } catch (SQLException sqle) {
             // Log exception and continue
-            subclassLogWrapper("Unexpected exception while closing database statement.");
+            LOGGER.error("Unexpected exception while closing database statement.", sqle);
         }
     }
 
@@ -176,24 +168,7 @@ abstract public class JDBCUtil {
             }
         } catch (SQLException sqle) {
             // Log exception and continue
-            subclassLogWrapper("Unexpected exception while closing database result set.");
-        }
-    }
-
-    /**
-     * Wraps the delegated call to the subclass logging method with a Throwable
-     * wrapper. All throwables generated by the subclass logging method are
-     * caught and ignored.
-     * 
-     * @param logString
-     *            the raw string to be passed to the logging method implemented
-     *            by the subclass
-     */
-    private void subclassLogWrapper(String logString) {
-        try {
-            delegatedLog(logString);
-        } catch (Throwable t) {
-            // Throwables generated by the logging system are ignored
+            LOGGER.error("Unexpected exception while closing database result set.", sqle);
         }
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/server/data/data-jdbc/src/main/java/org/apache/james/mailrepository/jdbc/JDBCMailRepository.java
----------------------------------------------------------------------
diff --git a/server/data/data-jdbc/src/main/java/org/apache/james/mailrepository/jdbc/JDBCMailRepository.java b/server/data/data-jdbc/src/main/java/org/apache/james/mailrepository/jdbc/JDBCMailRepository.java
index 07f6e8a..00c5d2a 100644
--- a/server/data/data-jdbc/src/main/java/org/apache/james/mailrepository/jdbc/JDBCMailRepository.java
+++ b/server/data/data-jdbc/src/main/java/org/apache/james/mailrepository/jdbc/JDBCMailRepository.java
@@ -270,11 +270,7 @@ public class JDBCMailRepository extends AbstractMailRepository {
             throw new ConfigurationException(message, e);
         }
 
-        theJDBCUtil = new JDBCUtil() {
-            protected void delegatedLog(String logString) {
-                JDBCMailRepository.this.LOGGER.warn("JDBCMailRepository: " + logString);
-            }
-        };
+        theJDBCUtil = new JDBCUtil();
 
         // Test the connection to the database, by getting the DatabaseMetaData.
         Connection conn = datasource.getConnection();

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/server/data/data-jdbc/src/main/java/org/apache/james/mailrepository/jdbc/MimeMessageJDBCSource.java
----------------------------------------------------------------------
diff --git a/server/data/data-jdbc/src/main/java/org/apache/james/mailrepository/jdbc/MimeMessageJDBCSource.java b/server/data/data-jdbc/src/main/java/org/apache/james/mailrepository/jdbc/MimeMessageJDBCSource.java
index 01c2a32..53373da 100644
--- a/server/data/data-jdbc/src/main/java/org/apache/james/mailrepository/jdbc/MimeMessageJDBCSource.java
+++ b/server/data/data-jdbc/src/main/java/org/apache/james/mailrepository/jdbc/MimeMessageJDBCSource.java
@@ -19,10 +19,6 @@
 
 package org.apache.james.mailrepository.jdbc;
 
-import org.apache.james.core.MimeMessageSource;
-import org.apache.james.repository.api.StreamRepository;
-import org.apache.james.util.sql.JDBCUtil;
-
 import java.io.ByteArrayInputStream;
 import java.io.IOException;
 import java.io.InputStream;
@@ -33,6 +29,10 @@ import java.sql.PreparedStatement;
 import java.sql.ResultSet;
 import java.sql.SQLException;
 
+import org.apache.james.core.MimeMessageSource;
+import org.apache.james.repository.api.StreamRepository;
+import org.apache.james.util.sql.JDBCUtil;
+
 /**
  * This class points to a specific message in a repository. This will return an
  * InputStream to the JDBC field/record, possibly sequenced with the file
@@ -65,12 +65,7 @@ public class MimeMessageJDBCSource extends MimeMessageSource {
     /**
      * The JDBCUtil helper class
      */
-    private static final JDBCUtil theJDBCUtil = new JDBCUtil() {
-        protected void delegatedLog(String logString) {
-            // No logging available at this point in the code.
-            // Therefore this is a noop method.
-        }
-    };
+    private static final JDBCUtil theJDBCUtil = new JDBCUtil();
 
     /**
      * Construct a MimeMessageSource based on a JDBC repository, a key, and a

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/server/data/data-jdbc/src/main/java/org/apache/james/rrt/jdbc/JDBCRecipientRewriteTable.java
----------------------------------------------------------------------
diff --git a/server/data/data-jdbc/src/main/java/org/apache/james/rrt/jdbc/JDBCRecipientRewriteTable.java b/server/data/data-jdbc/src/main/java/org/apache/james/rrt/jdbc/JDBCRecipientRewriteTable.java
index 56effd9..3c27de2 100644
--- a/server/data/data-jdbc/src/main/java/org/apache/james/rrt/jdbc/JDBCRecipientRewriteTable.java
+++ b/server/data/data-jdbc/src/main/java/org/apache/james/rrt/jdbc/JDBCRecipientRewriteTable.java
@@ -75,11 +75,7 @@ public class JDBCRecipientRewriteTable extends AbstractRecipientRewriteTable {
     /**
      * The JDBCUtil helper class
      */
-    private final JDBCUtil theJDBCUtil = new JDBCUtil() {
-        protected void delegatedLog(String logString) {
-            LOGGER.debug("JDBCRecipientRewriteTable: " + logString);
-        }
-    };
+    private final JDBCUtil theJDBCUtil = new JDBCUtil();
 
     @PostConstruct
     public void init() throws Exception {

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/server/data/data-jdbc/src/main/java/org/apache/james/user/jdbc/AbstractJdbcUsersRepository.java
----------------------------------------------------------------------
diff --git a/server/data/data-jdbc/src/main/java/org/apache/james/user/jdbc/AbstractJdbcUsersRepository.java b/server/data/data-jdbc/src/main/java/org/apache/james/user/jdbc/AbstractJdbcUsersRepository.java
index 88ede9e..42c4032 100644
--- a/server/data/data-jdbc/src/main/java/org/apache/james/user/jdbc/AbstractJdbcUsersRepository.java
+++ b/server/data/data-jdbc/src/main/java/org/apache/james/user/jdbc/AbstractJdbcUsersRepository.java
@@ -253,11 +253,7 @@ public abstract class AbstractJdbcUsersRepository extends AbstractJamesUsersRepo
             LOGGER.debug(logBuffer.toString());
         }
 
-        theJDBCUtil = new JDBCUtil() {
-            protected void delegatedLog(String logString) {
-                AbstractJdbcUsersRepository.this.LOGGER.warn("AbstractJdbcUsersRepository: " + logString);
-            }
-        };
+        theJDBCUtil = new JDBCUtil();
 
         // Test the connection to the database, by getting the DatabaseMetaData.
         Connection conn = openConnection();

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/server/dns-service/dnsservice-library/src/main/java/org/apache/james/dnsservice/library/netmatcher/NetMatcher.java
----------------------------------------------------------------------
diff --git a/server/dns-service/dnsservice-library/src/main/java/org/apache/james/dnsservice/library/netmatcher/NetMatcher.java b/server/dns-service/dnsservice-library/src/main/java/org/apache/james/dnsservice/library/netmatcher/NetMatcher.java
index 147a952..214f154 100644
--- a/server/dns-service/dnsservice-library/src/main/java/org/apache/james/dnsservice/library/netmatcher/NetMatcher.java
+++ b/server/dns-service/dnsservice-library/src/main/java/org/apache/james/dnsservice/library/netmatcher/NetMatcher.java
@@ -30,6 +30,8 @@ import java.util.TreeSet;
 import org.apache.james.dnsservice.api.DNSService;
 import org.apache.james.dnsservice.library.inetnetwork.InetNetworkBuilder;
 import org.apache.james.dnsservice.library.inetnetwork.model.InetNetwork;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.google.common.base.Splitter;
 
@@ -40,6 +42,8 @@ import com.google.common.base.Splitter;
  * address or domain name is within a set of subnets.
  */
 public class NetMatcher {
+    private static final Logger LOGGER = LoggerFactory.getLogger(NetMatcher.class);
+
     public static final String NETS_SEPARATOR = ", ";
 
     /**
@@ -98,7 +102,7 @@ public class NetMatcher {
         try {
             ip = dnsServer.getByName(hostIP);
         } catch (UnknownHostException uhe) {
-            log("Cannot resolve address for " + hostIP + ": " + uhe.getMessage());
+            LOGGER.info("Cannot resolve address for " + hostIP + ": " + uhe.getMessage());
             return false;
         }
 
@@ -133,15 +137,6 @@ public class NetMatcher {
     }
 
     /**
-     * Can be overwritten for logging
-     *
-     * @param s
-     *            the String to log
-     */
-    protected void log(String s) {
-    }
-
-    /**
      * Init the class with the given networks.
      * 
      * @param nets
@@ -168,7 +163,7 @@ public class NetMatcher {
                 InetNetwork inet = inetNetwork.getFromString(net);
                 networks.add(inet);
             } catch (UnknownHostException uhe) {
-                log("Cannot resolve address: " + uhe.getMessage());
+                LOGGER.info("Cannot resolve address: " + uhe.getMessage());
             }
         }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/JamesMailetContext.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/JamesMailetContext.java b/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/JamesMailetContext.java
index 7f292e4..c0fa112 100644
--- a/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/JamesMailetContext.java
+++ b/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/JamesMailetContext.java
@@ -242,14 +242,14 @@ public class JamesMailetContext implements MailetContext, Configurable {
                 try {
                     return isLocalEmail(new MailAddress(name.toLowerCase(Locale.US), domains.getDefaultDomain()));
                 } catch (DomainListException e) {
-                    log("Unable to access DomainList", e);
+                    LOGGER.error("Unable to access DomainList", e);
                     return false;
                 }
             } else {
                 return isLocalEmail(new MailAddress(name.toLowerCase(Locale.US)));
             }
         } catch (ParseException e) {
-            log("Error checking isLocalUser for user " + name);
+            LOGGER.info("Error checking isLocalUser for user " + name, e);
             return false;
         }
     }
@@ -263,7 +263,7 @@ public class JamesMailetContext implements MailetContext, Configurable {
             try {
                 return localusers.contains(localusers.getUser(mailAddress));
             } catch (UsersRepositoryException e) {
-                log("Unable to access UsersRepository", e);
+                LOGGER.error("Unable to access UsersRepository", e);
             }
         }
         return false;

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/AbstractRecipientRewriteTable.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/AbstractRecipientRewriteTable.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/AbstractRecipientRewriteTable.java
index b89cc39..5ce3f5f 100755
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/AbstractRecipientRewriteTable.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/AbstractRecipientRewriteTable.java
@@ -41,6 +41,8 @@ import org.apache.mailet.Experimental;
 import org.apache.mailet.Mail;
 import org.apache.mailet.MailAddress;
 import org.apache.mailet.base.GenericMailet;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Provides an abstraction of common functionality needed for implementing a
@@ -52,6 +54,7 @@ import org.apache.mailet.base.GenericMailet;
 @Deprecated
 @Experimental
 public abstract class AbstractRecipientRewriteTable extends GenericMailet {
+    private static final Logger LOGGER = LoggerFactory.getLogger(AbstractRecipientRewriteTable.class);
     static private final String MARKER = "org.apache.james.transport.mailets.AbstractRecipientRewriteTable.mapped";
     private DNSService dns;
     private DomainList domainList;
@@ -110,14 +113,11 @@ public abstract class AbstractRecipientRewriteTable extends GenericMailet {
                     while (tokenizer.hasMoreTokens()) {
                         String targetAddress = tokenizer.nextToken().trim();
 
-                        // log("Attempting to map from " + source + " to " +
-                        // targetAddress);
-
                         if (targetAddress.startsWith("regex:")) {
                             try {
                                 targetAddress = RecipientRewriteTableUtil.regexMap(source, targetAddress);
                             } catch (PatternSyntaxException e) {
-                                log("Exception during regexMap processing: ", e);
+                                LOGGER.error("Exception during regexMap processing: ", e);
                             }
                             if (targetAddress == null)
                                 continue;
@@ -139,15 +139,15 @@ public abstract class AbstractRecipientRewriteTable extends GenericMailet {
                             }
 
                             String buf = "Translating virtual user " + source + " to " + target;
-                            log(buf);
+                            LOGGER.info(buf);
 
                         } catch (ParseException pe) {
                             // Don't map this address... there's an invalid
                             // address mapping here
                             String exceptionBuffer = "There is an invalid map from " + source + " to " + targetAddress;
-                            log(exceptionBuffer);
+                            LOGGER.error(exceptionBuffer);
                         } catch (DomainListException e) {
-                            log("Unable to access DomainList", e);
+                            LOGGER.error("Unable to access DomainList", e);
                         }
                     }
                 }
@@ -237,7 +237,7 @@ public abstract class AbstractRecipientRewriteTable extends GenericMailet {
             @SuppressWarnings("unused")
             Integer code = Integer.valueOf(error.substring("error:".length(), msgPos));
         } catch (NumberFormatException e) {
-            log("Cannot send DSN.  Exception parsing DSN code from: " + error, e);
+            LOGGER.error("Cannot send DSN.  Exception parsing DSN code from: " + error, e);
             return;
         }
         @SuppressWarnings("unused")
@@ -246,7 +246,7 @@ public abstract class AbstractRecipientRewriteTable extends GenericMailet {
         try {
             getMailetContext().bounce(mail, error);
         } catch (MessagingException me) {
-            log("Cannot send DSN.  Exception during DSN processing: ", me);
+            LOGGER.error("Cannot send DSN.  Exception during DSN processing: ", me);
         }
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/BayesianAnalysis.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/BayesianAnalysis.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/BayesianAnalysis.java
index 6f3d28d..4028e7b 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/BayesianAnalysis.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/BayesianAnalysis.java
@@ -40,6 +40,8 @@ import org.apache.mailet.Mail;
 import org.apache.mailet.MailAddress;
 import org.apache.mailet.base.GenericMailet;
 import org.apache.mailet.base.RFC2822Headers;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * <p>
@@ -125,23 +127,17 @@ import org.apache.mailet.base.RFC2822Headers;
  */
 @Experimental
 public class BayesianAnalysis extends GenericMailet {
+    private static final Logger LOGGER = LoggerFactory.getLogger(BayesianAnalysis.class);
+
     /**
      * The JDBCUtil helper class
      */
-    private final JDBCUtil theJDBCUtil = new JDBCUtil() {
-        protected void delegatedLog(String logString) {
-            log("BayesianAnalysis: " + logString);
-        }
-    };
+    private final JDBCUtil theJDBCUtil = new JDBCUtil();
 
     /**
      * The JDBCBayesianAnalyzer class that does all the work.
      */
-    private final JDBCBayesianAnalyzer analyzer = new JDBCBayesianAnalyzer() {
-        protected void delegatedLog(String logString) {
-            log("BayesianAnalysis: " + logString);
-        }
-    };
+    private final JDBCBayesianAnalyzer analyzer = new JDBCBayesianAnalyzer();
 
     private DataSource datasource;
 
@@ -240,16 +236,16 @@ public class BayesianAnalysis extends GenericMailet {
         ignoreLocalSender = Boolean.valueOf(getInitParameter("ignoreLocalSender"));
 
         if (ignoreLocalSender) {
-            log("Will ignore messages coming from local senders");
+            LOGGER.debug("Will ignore messages coming from local senders");
         } else {
-            log("Will analyze messages coming from local senders");
+            LOGGER.debug("Will analyze messages coming from local senders");
         }
 
         String maxSizeParam = getInitParameter("maxSize");
         if (maxSizeParam != null) {
             setMaxSize(Integer.parseInt(maxSizeParam));
         }
-        log("maxSize: " + getMaxSize());
+        LOGGER.debug("maxSize: " + getMaxSize());
 
         String tag = getInitParameter("tagSubject");
         if (tag != null && tag.equals("false")) {
@@ -330,7 +326,7 @@ public class BayesianAnalysis extends GenericMailet {
                 senderString = mail.getSender().toString();
             }
             if (probability > 0.1) {
-                log(headerName + ": " + probabilityString + "; From: " + senderString + "; Recipient(s): " + getAddressesString(mail.getRecipients()));
+                LOGGER.debug(headerName + ": " + probabilityString + "; From: " + senderString + "; Recipient(s): " + getAddressesString(mail.getRecipients()));
 
                 // Check if we should tag the subject
                 if (tagSubject) {
@@ -341,7 +337,7 @@ public class BayesianAnalysis extends GenericMailet {
             saveChanges(message);
 
         } catch (Exception e) {
-            log("Exception: " + e.getMessage(), e);
+            LOGGER.error("Exception: " + e.getMessage(), e);
             throw new MessagingException("Exception thrown", e);
         }
     }
@@ -357,7 +353,7 @@ public class BayesianAnalysis extends GenericMailet {
                 analyzer.tokenCountsClear();
             }
 
-            log("BayesianAnalysis Corpus loaded");
+            LOGGER.error("BayesianAnalysis Corpus loaded");
 
             touchLastCorpusLoadTime();
 
@@ -397,7 +393,7 @@ public class BayesianAnalysis extends GenericMailet {
                 message.setSubject(toAppend + " " + subject, "iso-8859-1");
             }
         } catch (MessagingException ex) {
-            log("Ignored error while modifying subject", ex);
+            LOGGER.error("Ignored error while modifying subject", ex);
         }
     }
 
@@ -425,19 +421,19 @@ public class BayesianAnalysis extends GenericMailet {
          * Thread entry point.
          */
         public void run() {
-            analysis.log("CorpusLoader thread started: will wake up every " + CORPUS_RELOAD_INTERVAL + " ms");
+            LOGGER.info("CorpusLoader thread started: will wake up every " + CORPUS_RELOAD_INTERVAL + " ms");
 
             try {
                 Thread.sleep(CORPUS_RELOAD_INTERVAL);
 
                 while (true) {
                     if (analysis.getLastCorpusLoadTime() < JDBCBayesianAnalyzer.getLastDatabaseUpdateTime()) {
-                        analysis.log("Reloading Corpus ...");
+                        LOGGER.info("Reloading Corpus ...");
                         try {
                             analysis.loadData(analysis.datasource.getConnection());
-                            analysis.log("Corpus reloaded");
+                            LOGGER.info("Corpus reloaded");
                         } catch (java.sql.SQLException se) {
-                            analysis.log("SQLException: ", se);
+                            LOGGER.error("SQLException: ", se);
                         }
 
                     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/BayesianAnalysisFeeder.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/BayesianAnalysisFeeder.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/BayesianAnalysisFeeder.java
index 9bcbf3a..8ec5ccf 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/BayesianAnalysisFeeder.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/BayesianAnalysisFeeder.java
@@ -32,11 +32,14 @@ import javax.mail.internet.MimeMessage;
 import javax.sql.DataSource;
 
 import org.apache.james.filesystem.api.FileSystem;
+import org.apache.james.transport.mailets.managesieve.ManageSieveMailet;
 import org.apache.james.util.bayesian.JDBCBayesianAnalyzer;
 import org.apache.james.util.sql.JDBCUtil;
 import org.apache.mailet.Experimental;
 import org.apache.mailet.Mail;
 import org.apache.mailet.base.GenericMailet;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * <p>
@@ -129,23 +132,17 @@ import org.apache.mailet.base.GenericMailet;
  */
 @Experimental
 public class BayesianAnalysisFeeder extends GenericMailet {
+    private static final Logger LOGGER = LoggerFactory.getLogger(ManageSieveMailet.class);
+
     /**
      * The JDBCUtil helper class
      */
-    private final JDBCUtil theJDBCUtil = new JDBCUtil() {
-        protected void delegatedLog(String logString) {
-            log("BayesianAnalysisFeeder: " + logString);
-        }
-    };
+    private final JDBCUtil theJDBCUtil = new JDBCUtil();
 
     /**
      * The JDBCBayesianAnalyzer class that does all the work.
      */
-    private final JDBCBayesianAnalyzer analyzer = new JDBCBayesianAnalyzer() {
-        protected void delegatedLog(String logString) {
-            log("BayesianAnalysisFeeder: " + logString);
-        }
-    };
+    private final JDBCBayesianAnalyzer analyzer = new JDBCBayesianAnalyzer();
 
     private DataSource datasource;
 
@@ -220,7 +217,7 @@ public class BayesianAnalysisFeeder extends GenericMailet {
         if (maxSizeParam != null) {
             setMaxSize(Integer.parseInt(maxSizeParam));
         }
-        log("maxSize: " + getMaxSize());
+        LOGGER.debug("maxSize: " + getMaxSize());
 
         initDb();
 
@@ -261,7 +258,7 @@ public class BayesianAnalysisFeeder extends GenericMailet {
             String messageId = message.getMessageID();
 
             if (message.getSize() > getMaxSize()) {
-                log(messageId + " Feeding HAM/SPAM ignored because message size > " + getMaxSize() + ": " + message.getSize());
+                LOGGER.debug(messageId + " Feeding HAM/SPAM ignored because message size > " + getMaxSize() + ": " + message.getSize());
                 return;
             }
 
@@ -286,14 +283,14 @@ public class BayesianAnalysisFeeder extends GenericMailet {
                 analyzer.clear();
 
                 if ("ham".equalsIgnoreCase(feedType)) {
-                    log(messageId + " Feeding HAM");
+                    LOGGER.debug(messageId + " Feeding HAM");
                     // Process the stream as ham (not spam).
                     analyzer.addHam(br);
 
                     // Update storage statistics.
                     analyzer.updateHamTokens(conn);
                 } else {
-                    log(messageId + " Feeding SPAM");
+                    LOGGER.debug(messageId + " Feeding SPAM");
                     // Process the stream as spam.
                     analyzer.addSpam(br);
 
@@ -305,18 +302,18 @@ public class BayesianAnalysisFeeder extends GenericMailet {
                 if (conn != null && dbUpdated && !conn.getAutoCommit()) {
                     conn.commit();
                     dbUpdated = false;
-                    log(messageId + " Training ended successfully");
+                    LOGGER.debug(messageId + " Training ended successfully");
                     JDBCBayesianAnalyzer.touchLastDatabaseUpdateTime();
                 }
 
             }
 
         } catch (java.sql.SQLException se) {
-            log("SQLException: " + se.getMessage());
+            LOGGER.error("SQLException: ", se);
         } catch (java.io.IOException ioe) {
-            log("IOException: " + ioe.getMessage());
+            LOGGER.error("IOException: ", ioe);
         } catch (javax.mail.MessagingException me) {
-            log("MessagingException: " + me.getMessage());
+            LOGGER.error("MessagingException: ", me);
         } finally {
             // Rollback our changes if necessary.
             try {
@@ -325,7 +322,7 @@ public class BayesianAnalysisFeeder extends GenericMailet {
                     dbUpdated = false;
                 }
             } catch (Exception e) {
-                log("Ignored error while rolling back", e);
+                LOGGER.error("Ignored error while rolling back", e);
             }
             theJDBCUtil.closeJDBCConnection(conn);
         }
@@ -340,7 +337,7 @@ public class BayesianAnalysisFeeder extends GenericMailet {
             try {
                 message.removeHeader(header.getName());
             } catch (MessagingException me) {
-                log("Ignored error while removing header", me);
+                LOGGER.error("Ignored error while removing header", me);
             }
         }
         message.saveChanges();

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Bounce.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Bounce.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Bounce.java
index d3565b9..d431613 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Bounce.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Bounce.java
@@ -42,6 +42,8 @@ import org.apache.james.transport.util.TosUtils;
 import org.apache.mailet.Mail;
 import org.apache.mailet.MailAddress;
 import org.apache.mailet.base.GenericMailet;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.google.common.base.Optional;
 import com.google.common.collect.ImmutableList;
@@ -121,6 +123,7 @@ import com.google.common.collect.ImmutableList;
  * @since 2.2.0
  */
 public class Bounce extends GenericMailet implements RedirectNotify {
+    private static final Logger LOGGER = LoggerFactory.getLogger(Bounce.class);
 
     private static final String[] CONFIGURABLE_PARAMETERS = new String[] {
             "debug", "passThrough", "fakeDomainCheck", "inline", "attachment", "message", "notice", "sender", "sendingAddress", "prefix", "attachError" };
@@ -156,7 +159,7 @@ public class Bounce extends GenericMailet implements RedirectNotify {
     @Override
     public void init() throws MessagingException {
         if (getInitParameters().isDebug()) {
-            log("Initializing");
+            LOGGER.debug("Initializing");
         }
 
         // check that all init parameters have been declared in
@@ -165,7 +168,7 @@ public class Bounce extends GenericMailet implements RedirectNotify {
 
         if (getInitParameters().isStatic()) {
             if (getInitParameters().isDebug()) {
-                log(getInitParameters().asString());
+                LOGGER.debug(getInitParameters().asString());
             }
         }
     }
@@ -238,7 +241,7 @@ public class Bounce extends GenericMailet implements RedirectNotify {
             passThrough(originalMail);
         } else {
             if (getInitParameters().isDebug()) {
-                log("Processing a bounce request for a message with a reverse path.  The bounce will be sent to " + originalMail.getSender().toString());
+                LOGGER.debug("Processing a bounce request for a message with a reverse path.  The bounce will be sent to " + originalMail.getSender().toString());
             }
             ProcessRedirectNotify.from(this).process(originalMail);
         }
@@ -246,7 +249,7 @@ public class Bounce extends GenericMailet implements RedirectNotify {
 
     private void passThrough(Mail originalMail) throws MessagingException {
         if (getInitParameters().isDebug()) {
-            log("Processing a bounce request for a message with an empty reverse-path.  No bounce will be sent.");
+            LOGGER.debug("Processing a bounce request for a message with an empty reverse-path.  No bounce will be sent.");
         }
         if (!getInitParameters().getPassThrough()) {
             originalMail.setState(Mail.GHOST);


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org