You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@synapse.apache.org by ru...@apache.org on 2010/02/12 13:01:30 UTC

svn commit: r909375 - in /synapse/branches/1.3/modules/core/src/main/java/org/apache/synapse: SynapseLog.java config/xml/LogMediatorFactory.java config/xml/LogMediatorSerializer.java mediators/MediatorLog.java mediators/builtin/LogMediator.java

Author: ruwan
Date: Fri Feb 12 12:01:24 2010
New Revision: 909375

URL: http://svn.apache.org/viewvc?rev=909375&view=rev
Log:
Adding the enhancement SYNAPSE-606 into the 1.3 branch

Modified:
    synapse/branches/1.3/modules/core/src/main/java/org/apache/synapse/SynapseLog.java
    synapse/branches/1.3/modules/core/src/main/java/org/apache/synapse/config/xml/LogMediatorFactory.java
    synapse/branches/1.3/modules/core/src/main/java/org/apache/synapse/config/xml/LogMediatorSerializer.java
    synapse/branches/1.3/modules/core/src/main/java/org/apache/synapse/mediators/MediatorLog.java
    synapse/branches/1.3/modules/core/src/main/java/org/apache/synapse/mediators/builtin/LogMediator.java

Modified: synapse/branches/1.3/modules/core/src/main/java/org/apache/synapse/SynapseLog.java
URL: http://svn.apache.org/viewvc/synapse/branches/1.3/modules/core/src/main/java/org/apache/synapse/SynapseLog.java?rev=909375&r1=909374&r2=909375&view=diff
==============================================================================
--- synapse/branches/1.3/modules/core/src/main/java/org/apache/synapse/SynapseLog.java (original)
+++ synapse/branches/1.3/modules/core/src/main/java/org/apache/synapse/SynapseLog.java Fri Feb 12 12:01:24 2010
@@ -35,6 +35,8 @@
     /**
      * Check whether a call to {@link #traceOrDebug(Object)} would actually cause a log
      * message to be written to the logs.
+     *
+     * @return <code>true</code> if trace or debug is enabled
      */
     boolean isTraceOrDebugEnabled();
     
@@ -65,6 +67,8 @@
     /**
      * Check whether a call to {@link #traceTrace(Object)} would actually cause a log
      * message to be written to the logs.
+     *
+     * @return <code>true</code> if trace is enabled for the trace log
      */
     boolean isTraceTraceEnabled();
     
@@ -88,6 +92,20 @@
      * @param msg the message to be logged
      */
     void auditLog(Object msg);
+
+    /**
+     * Log an audit message at the TRACE category.
+     *
+     * @param msg the message to be logged
+     */
+    void auditDebug(Object msg);
+
+    /**
+     * Log an audit message at the TRACE category.
+     *
+     * @param msg the message to be logged
+     */
+    void auditTrace(Object msg);
     
     /**
      * Log a warning message.
@@ -97,6 +115,20 @@
      * @param msg the message to be logged
      */
     void auditWarn(Object msg);
+
+    /**
+     * Log an audit message at the ERROR category.
+     *
+     * @param msg the message to be logged
+     */
+    void auditError(Object msg);
+
+    /**
+     * Log an audit message at the FATAL category.
+     *
+     * @param msg the message to be logged
+     */
+    void auditFatal(Object msg);
     
     /**
      * Log a message at level 'error'.

Modified: synapse/branches/1.3/modules/core/src/main/java/org/apache/synapse/config/xml/LogMediatorFactory.java
URL: http://svn.apache.org/viewvc/synapse/branches/1.3/modules/core/src/main/java/org/apache/synapse/config/xml/LogMediatorFactory.java?rev=909375&r1=909374&r2=909375&view=diff
==============================================================================
--- synapse/branches/1.3/modules/core/src/main/java/org/apache/synapse/config/xml/LogMediatorFactory.java (original)
+++ synapse/branches/1.3/modules/core/src/main/java/org/apache/synapse/config/xml/LogMediatorFactory.java Fri Feb 12 12:01:24 2010
@@ -42,8 +42,15 @@
     private static final String HEADERS = "headers";
     private static final String FULL    = "full";
     private static final String CUSTOM  = "custom";
+    public static final String CAT_INFO = "INFO";
+    public static final String CAT_TRACE = "TRACE";
+    public static final String CAT_DEBUG = "DEBUG";
+    public static final String CAT_WARN = "WARN";
+    public static final String CAT_ERROR = "ERROR";
+    public static final String CAT_FATAL = "FATAL";
     private static final QName ATT_LEVEL = new QName("level");
     private static final QName ATT_SEPERATOR = new QName("separator");
+    private static final QName ATT_CATEGORY = new QName("category");
 
     public QName getTagQName() {
         return LOG_Q;
@@ -72,6 +79,28 @@
             }
         }
 
+        // Set the log statement category (i.e. INFO, DEBUG, etc..)
+        OMAttribute category = elem.getAttribute(ATT_CATEGORY);
+        if (category != null) {
+            String catstr = category.getAttributeValue().trim().toUpperCase();
+            if (CAT_INFO.equals(catstr)) {
+                logMediator.setCategory(LogMediator.CATEGORY_INFO);
+            } else if (CAT_TRACE.equals(catstr)) {
+                logMediator.setCategory(LogMediator.CATEGORY_TRACE);
+            } else if (CAT_DEBUG.equals(catstr)) {
+                logMediator.setCategory(LogMediator.CATEGORY_DEBUG);
+            } else if (CAT_WARN.equals(catstr)) {
+                logMediator.setCategory(LogMediator.CATEGORY_WARN);
+            } else if (CAT_ERROR.equals(catstr)) {
+                logMediator.setCategory(LogMediator.CATEGORY_ERROR);
+            } else if (CAT_FATAL.equals(catstr)) {
+                logMediator.setCategory(LogMediator.CATEGORY_FATAL);
+            } else {
+                handleException("Invalid log category. Category has to be one of " +
+                        "the following : INFO, TRACE, DEBUG, WARN, ERROR, FATAL");
+            }
+        }
+
         // check if a custom separator has been supplied, if so use it
         OMAttribute separator = elem.getAttribute(ATT_SEPERATOR);
         if (separator != null) {

Modified: synapse/branches/1.3/modules/core/src/main/java/org/apache/synapse/config/xml/LogMediatorSerializer.java
URL: http://svn.apache.org/viewvc/synapse/branches/1.3/modules/core/src/main/java/org/apache/synapse/config/xml/LogMediatorSerializer.java?rev=909375&r1=909374&r2=909375&view=diff
==============================================================================
--- synapse/branches/1.3/modules/core/src/main/java/org/apache/synapse/config/xml/LogMediatorSerializer.java (original)
+++ synapse/branches/1.3/modules/core/src/main/java/org/apache/synapse/config/xml/LogMediatorSerializer.java Fri Feb 12 12:01:24 2010
@@ -20,14 +20,12 @@
 package org.apache.synapse.config.xml;
 
 import org.apache.axiom.om.OMElement;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
 import org.apache.synapse.Mediator;
 import org.apache.synapse.mediators.builtin.LogMediator;
 
 /**
  * <pre>
- * &lt;log [level="simple|headers|full|custom"] [separator="string"]&gt;
+ * &lt;log [level="simple|headers|full|custom"] [separator="string"] [category="INFO|TRACE|DEBUG|WARN|ERROR|FATAL"]&gt;
  *      &lt;property&gt; *
  * &lt;/log&gt;
  * </pre>
@@ -53,6 +51,23 @@
                 ));
         }
 
+        if (mediator.getCategory() != LogMediator.CATEGORY_INFO) {
+            log.addAttribute(fac.createOMAttribute(
+                "category", nullNS,
+                    mediator.getCategory() == LogMediator.CATEGORY_TRACE ?
+                            LogMediatorFactory.CAT_TRACE :
+                    mediator.getCategory() == LogMediator.CATEGORY_DEBUG ?
+                            LogMediatorFactory.CAT_DEBUG :
+                    mediator.getCategory() == LogMediator.CATEGORY_WARN ?
+                            LogMediatorFactory.CAT_WARN :
+                    mediator.getCategory() == LogMediator.CATEGORY_ERROR ?
+                            LogMediatorFactory.CAT_ERROR :
+                    mediator.getCategory() == LogMediator.CATEGORY_FATAL ?
+                            LogMediatorFactory.CAT_FATAL :
+                            LogMediatorFactory.CAT_INFO
+                ));
+        }
+
         if (!LogMediator.DEFAULT_SEP.equals(mediator.getSeparator())) {
             log.addAttribute(fac.createOMAttribute(
                     "separator", nullNS, mediator.getSeparator()));

Modified: synapse/branches/1.3/modules/core/src/main/java/org/apache/synapse/mediators/MediatorLog.java
URL: http://svn.apache.org/viewvc/synapse/branches/1.3/modules/core/src/main/java/org/apache/synapse/mediators/MediatorLog.java?rev=909375&r1=909374&r2=909375&view=diff
==============================================================================
--- synapse/branches/1.3/modules/core/src/main/java/org/apache/synapse/mediators/MediatorLog.java (original)
+++ synapse/branches/1.3/modules/core/src/main/java/org/apache/synapse/mediators/MediatorLog.java Fri Feb 12 12:01:24 2010
@@ -104,6 +104,32 @@
     }
 
     /**
+     * Log a message at level DEBUG to all available/enabled logs.
+     */
+    public void auditDebug(Object msg) {
+        defaultLog.debug(msg);
+        if (synCtx.getServiceLog() != null) {
+            synCtx.getServiceLog().debug(msg);
+        }
+        if (traceOn) {
+            traceLog.debug(msg);
+        }
+    }
+
+    /**
+     * Log a message at level TRACE to all available/enabled logs.
+     */
+    public void auditTrace(Object msg) {
+        defaultLog.trace(msg);
+        if (synCtx.getServiceLog() != null) {
+            synCtx.getServiceLog().trace(msg);
+        }
+        if (traceOn) {
+            traceLog.trace(msg);
+        }
+    }
+
+    /**
      * Log a message at level WARN to all available/enabled logs.
      */
     public void auditWarn(Object msg) {
@@ -117,6 +143,32 @@
     }
 
     /**
+     * Log a message at level ERROR to all available/enabled logs.
+     */
+    public void auditError(Object msg) {
+        defaultLog.error(msg);
+        if (synCtx.getServiceLog() != null) {
+            synCtx.getServiceLog().error(msg);
+        }
+        if (traceOn) {
+            traceLog.error(msg);
+        }
+    }
+
+    /**
+     * Log a message at level FATAL to all available/enabled logs.
+     */
+    public void auditFatal(Object msg) {
+        defaultLog.fatal(msg);
+        if (synCtx.getServiceLog() != null) {
+            synCtx.getServiceLog().fatal(msg);
+        }
+        if (traceOn) {
+            traceLog.fatal(msg);
+        }
+    }
+
+    /**
      * Log a message at level ERROR to the default log and to the trace, if trace is enabled.
      */
     public void error(Object msg) {

Modified: synapse/branches/1.3/modules/core/src/main/java/org/apache/synapse/mediators/builtin/LogMediator.java
URL: http://svn.apache.org/viewvc/synapse/branches/1.3/modules/core/src/main/java/org/apache/synapse/mediators/builtin/LogMediator.java?rev=909375&r1=909374&r2=909375&view=diff
==============================================================================
--- synapse/branches/1.3/modules/core/src/main/java/org/apache/synapse/mediators/builtin/LogMediator.java (original)
+++ synapse/branches/1.3/modules/core/src/main/java/org/apache/synapse/mediators/builtin/LogMediator.java Fri Feb 12 12:01:24 2010
@@ -19,9 +19,9 @@
 
 package org.apache.synapse.mediators.builtin;
 
-import org.apache.axiom.soap.SOAPHeaderBlock;
-import org.apache.axiom.soap.SOAPHeader;
 import org.apache.axiom.om.OMElement;
+import org.apache.axiom.soap.SOAPHeader;
+import org.apache.axiom.soap.SOAPHeaderBlock;
 import org.apache.synapse.MessageContext;
 import org.apache.synapse.SynapseLog;
 import org.apache.synapse.mediators.AbstractMediator;
@@ -50,12 +50,21 @@
     /** all attributes of level 'simple' and the SOAP envelope and any properties */
     public static final int FULL    = 3;
 
+    public static final int CATEGORY_INFO = 0;
+    public static final int CATEGORY_DEBUG = 1;
+    public static final int CATEGORY_TRACE = 2;
+    public static final int CATEGORY_WARN = 3;
+    public static final int CATEGORY_ERROR = 4;
+    public static final int CATEGORY_FATAL = 5;
+
     public static final String DEFAULT_SEP = ", ";
 
     /** The default log level is set to SIMPLE */
     private int logLevel = SIMPLE;
     /** The separator for which used to separate logging information */
     private String separator = DEFAULT_SEP;
+    /** Category of the log statement */
+    private int category = CATEGORY_INFO;
     /** The holder for the custom properties */
     private final List<MediatorProperty> properties = new ArrayList<MediatorProperty>();
 
@@ -77,7 +86,26 @@
             }
         }
 
-        synLog.auditLog(getLogMessage(synCtx));
+        switch (category) {
+            case CATEGORY_INFO :
+                synLog.auditLog(getLogMessage(synCtx));
+                break;
+            case CATEGORY_TRACE :
+                synLog.auditTrace(getLogMessage(synCtx));
+                break;
+            case CATEGORY_DEBUG :
+                synLog.auditDebug(getLogMessage(synCtx));
+                break;
+            case CATEGORY_WARN :
+                synLog.auditWarn(getLogMessage(synCtx));
+                break;
+            case CATEGORY_ERROR :
+                synLog.auditError(getLogMessage(synCtx));
+                break;
+            case CATEGORY_FATAL :
+                synLog.auditFatal(getLogMessage(synCtx));
+                break;
+        }
 
         synLog.traceOrDebug("End : Log mediator");
         return true;
@@ -197,6 +225,18 @@
         return properties;
     }
 
+    public int getCategory() {
+        return category;
+    }
+
+    public void setCategory(int category) {
+        if (category > 0 && category <= 5) {
+            this.category = category;
+        } else {
+            
+        }
+    }
+
     private String trimLeadingSeparator(StringBuffer sb) {
         String retStr = sb.toString();
         if (retStr.startsWith(separator)) {