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 rd...@apache.org on 2008/12/23 20:46:38 UTC
svn commit: r729076 - in
/james/jsieve/trunk/mailet/src/main/java/org/apache/jsieve/mailet:
CommonsLoggingAdapter.java SieveMailboxMailet.java
Author: rdonkin
Date: Tue Dec 23 11:46:37 2008
New Revision: 729076
URL: http://svn.apache.org/viewvc?rev=729076&view=rev
Log:
Added quiet parameter (for minimal logging). Added adapter to allow Sieve to log to the mailet log system.
Added:
james/jsieve/trunk/mailet/src/main/java/org/apache/jsieve/mailet/CommonsLoggingAdapter.java (with props)
Modified:
james/jsieve/trunk/mailet/src/main/java/org/apache/jsieve/mailet/SieveMailboxMailet.java
Added: james/jsieve/trunk/mailet/src/main/java/org/apache/jsieve/mailet/CommonsLoggingAdapter.java
URL: http://svn.apache.org/viewvc/james/jsieve/trunk/mailet/src/main/java/org/apache/jsieve/mailet/CommonsLoggingAdapter.java?rev=729076&view=auto
==============================================================================
--- james/jsieve/trunk/mailet/src/main/java/org/apache/jsieve/mailet/CommonsLoggingAdapter.java (added)
+++ james/jsieve/trunk/mailet/src/main/java/org/apache/jsieve/mailet/CommonsLoggingAdapter.java Tue Dec 23 11:46:37 2008
@@ -0,0 +1,142 @@
+/****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one *
+ * or more contributor license agreements. See the NOTICE file *
+ * distributed with this work for additional information *
+ * regarding copyright ownership. The ASF licenses this file *
+ * to you under the Apache License, Version 2.0 (the *
+ * "License"); you may not use this file except in compliance *
+ * with the License. You may obtain a copy of the License at *
+ * *
+ * http://www.apache.org/licenses/LICENSE-2.0 *
+ * *
+ * Unless required by applicable law or agreed to in writing, *
+ * software distributed under the License is distributed on an *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY *
+ * KIND, either express or implied. See the License for the *
+ * specific language governing permissions and limitations *
+ * under the License. *
+ ****************************************************************/
+package org.apache.jsieve.mailet;
+
+import org.apache.commons.logging.Log;
+import org.apache.mailet.base.GenericMailet;
+
+/**
+ * Adapts commons logging to mailet logging.
+ */
+class CommonsLoggingAdapter implements Log {
+
+ public static final int TRACE = 6;
+ public static final int DEBUG = 5;
+ public static final int INFO = 4;
+ public static final int WARN = 3;
+ public static final int ERROR = 2;
+ public static final int FATAL = 1;
+
+ private final GenericMailet mailet;
+ private final int level;
+
+ public CommonsLoggingAdapter(final GenericMailet mailet, final int level) {
+ super();
+ this.mailet = mailet;
+ this.level = level;
+ }
+
+ public void debug(Object message) {
+ if (isDebugEnabled()) {
+ mailet.log(message == null ? "NULL" : message.toString());
+ }
+ }
+
+ public void debug(Object message, Throwable t) {
+ if (isDebugEnabled()) {
+ mailet.log(message == null ? "NULL" : message.toString(), t);
+ }
+ }
+
+ public void error(Object message) {
+ if (isErrorEnabled()) {
+ mailet.log(message == null ? "NULL" : message.toString());
+ }
+ }
+
+ public void error(Object message, Throwable t) {
+ if (isErrorEnabled()) {
+ mailet.log(message == null ? "NULL" : message.toString(), t);
+ }
+ }
+
+ public void fatal(Object message) {
+ if (isFatalEnabled()) {
+ mailet.log(message == null ? "NULL" : message.toString());
+ }
+ }
+
+ public void fatal(Object message, Throwable t) {
+ if (isFatalEnabled()) {
+ mailet.log(message == null ? "NULL" : message.toString(), t);
+ }
+ }
+
+ public void info(Object message) {
+ if (isInfoEnabled()) {
+ mailet.log(message == null ? "NULL" : message.toString());
+ }
+ }
+
+ public void info(Object message, Throwable t) {
+ if (isInfoEnabled()) {
+ mailet.log(message == null ? "NULL" : message.toString(), t);
+ }
+ }
+
+ public boolean isDebugEnabled() {
+ return level <= DEBUG;
+ }
+
+ public boolean isErrorEnabled() {
+ return level <= ERROR;
+ }
+
+ public boolean isFatalEnabled() {
+ return level <= FATAL;
+ }
+
+ public boolean isInfoEnabled() {
+ return level <= INFO;
+ }
+
+ public boolean isTraceEnabled() {
+ return level <= TRACE;
+ }
+
+ public boolean isWarnEnabled() {
+ return level <= WARN;
+ }
+
+ public void trace(Object message) {
+ if (isTraceEnabled()) {
+ mailet.log(message == null ? "NULL" : message.toString());
+ }
+ }
+
+ public void trace(Object message, Throwable t) {
+ if (isTraceEnabled()) {
+ mailet.log(message == null ? "NULL" : message.toString(), t);
+ }
+ }
+
+ public void warn(Object message) {
+ if (isWarnEnabled()) {
+ mailet.log(message == null ? "NULL" : message.toString());
+ }
+ }
+
+ public void warn(Object message, Throwable t) {
+ if (isWarnEnabled()) {
+ mailet.log(message == null ? "NULL" : message.toString(), t);
+ }
+ }
+
+
+}
Propchange: james/jsieve/trunk/mailet/src/main/java/org/apache/jsieve/mailet/CommonsLoggingAdapter.java
------------------------------------------------------------------------------
svn:mergeinfo =
Modified: james/jsieve/trunk/mailet/src/main/java/org/apache/jsieve/mailet/SieveMailboxMailet.java
URL: http://svn.apache.org/viewvc/james/jsieve/trunk/mailet/src/main/java/org/apache/jsieve/mailet/SieveMailboxMailet.java?rev=729076&r1=729075&r2=729076&view=diff
==============================================================================
--- james/jsieve/trunk/mailet/src/main/java/org/apache/jsieve/mailet/SieveMailboxMailet.java (original)
+++ james/jsieve/trunk/mailet/src/main/java/org/apache/jsieve/mailet/SieveMailboxMailet.java Tue Dec 23 11:46:37 2008
@@ -73,6 +73,8 @@
private boolean verbose = false;
private boolean consume = true;
+ /** Indicates whether this mailet should log minimal information */
+ private boolean quiet = true;
private SieveFactory factory;
@@ -146,6 +148,7 @@
/**
* Sets whether logging should be verbose for this mailet.
* This property is set by init parameters.
+ * This setting overrides {@link #isQuiet()}.
* @param verbose true when logging should be verbose,
* false otherwise
*/
@@ -153,15 +156,49 @@
this.verbose = verbose;
}
+ /**
+ * Is the logging for this mailet set to minimal?
+ * @return true
+ */
+ public boolean isQuiet() {
+ return quiet;
+ }
+ /**
+ * Sets the logging for this mailet to minimal.
+ * This is overriden by {@link #setVerbose(boolean)}.
+ * @param quiet true for minimal logging, false otherwise
+ */
+ public void setQuiet(boolean quiet) {
+ this.quiet = quiet;
+ }
+ /**
+ * Is informational logging turned on?
+ * @return true when minimal logging is off,
+ * false when logging is minimal
+ */
+ public boolean isInfoLoggingOn() {
+ return verbose || !quiet;
+ }
+
//@Override
public void init(MailetConfig config) throws MessagingException {
super.init(config);
try {
- factory = new ConfigurationManager().build();
+ final ConfigurationManager configurationManager = new ConfigurationManager();
+ final int logLevel;
+ if (verbose) {
+ logLevel = CommonsLoggingAdapter.TRACE;
+ } else if (quiet) {
+ logLevel = CommonsLoggingAdapter.FATAL;
+ } else {
+ logLevel = CommonsLoggingAdapter.WARN;
+ }
+ configurationManager.setLog(new CommonsLoggingAdapter(this, logLevel));
+ factory = configurationManager.build();
} catch (SieveConfigurationException e) {
throw new MessagingException("Failed to load standard Sieve configuration.", e);
}
@@ -231,7 +268,7 @@
}
}
} catch (Exception ex) {
- getMailetContext().log("Error while storing mail.", ex);
+ log("Error while storing mail.", ex);
errors.add(recipient);
}
}
@@ -310,7 +347,9 @@
// seems very unfriendly.
// So just log and store in INBOX.
//
- log("Cannot evaluate Sieve script. Storing mail in user INBOX.", ex);
+ if (isInfoLoggingOn()) {
+ log("Cannot evaluate Sieve script. Storing mail in user INBOX.", ex);
+ }
storeMessageInbox(username, aMail);
}
}
@@ -334,5 +373,6 @@
this.resetReturnPath = getInitParameter("resetReturnPath", true);
this.consume = getInitParameter("consume", true);
this.verbose = getInitParameter("verbose", false);
+ this.quiet = getInitParameter("quiet", false);
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org