ODE-983: Migrated to SLF4J and Log4j2
diff --git a/Rakefile b/Rakefile
index 4018b9f..800e543 100644
--- a/Rakefile
+++ b/Rakefile
@@ -88,7 +88,7 @@
       "scheduler-simple", "bpel-schemas", "bpel-store", "utils", "agents", "clustering"),
       AXIOM, AXIS2_ALL, COMMONS.lang, COMMONS.collections, COMMONS.httpclient, COMMONS.lang,
       DERBY, GERONIMO.kernel, GERONIMO.transaction, JAVAX.activation, JAVAX.servlet, JAVAX.stream,
-      JAVAX.transaction, JENCKS, WSDL4J, WS_COMMONS, XMLBEANS, AXIS2_MODULES.libs, SLF4J, LOG4J
+      JAVAX.transaction, JENCKS, WSDL4J, WS_COMMONS, XMLBEANS, AXIS2_MODULES.libs, SLF4J, LOG4J2
 
     test.exclude 'org.apache.ode.axis2.management.*'
     test.with project("tools"), AXIOM, JAVAX.javamail, COMMONS.codec, COMMONS.httpclient, XERCES, WOODSTOX, JACKSON
@@ -105,8 +105,8 @@
       AXIS2_ALL, ANNONGEN, BACKPORT, COMMONS.codec, COMMONS.collections, COMMONS.fileupload, COMMONS.io, COMMONS.httpclient, COMMONS.beanutils,
       COMMONS.lang, COMMONS.pool, DERBY, DERBY_TOOLS, JACOB, JAXEN, JAVAX.activation, JAVAX.ejb, JAVAX.javamail,
       JAVAX.connector, JAVAX.jms, JAVAX.persistence, JAVAX.transaction, JAVAX.stream,  JIBX,
-      GERONIMO.connector, GERONIMO.kernel, GERONIMO.transaction, LOG4J, OPENJPA, SAXON, TRANQL,
-      WOODSTOX, WSDL4J, WS_COMMONS, XALAN, XERCES, XMLBEANS, SPRING, AXIS2_MODULES.libs, SLF4J, LOG4J, HAZELCAST
+      GERONIMO.connector, GERONIMO.kernel, GERONIMO.transaction, LOG4J2, OPENJPA, SAXON, TRANQL,
+      WOODSTOX, WSDL4J, WS_COMMONS, XALAN, XERCES, XMLBEANS, SPRING, AXIS2_MODULES.libs, SLF4J, HAZELCAST
 
     package(:war).with(:libs=>libs).path("WEB-INF").tap do |web_inf|
       web_inf.merge project("dao-jpa-ojpa-derby").package(:zip)
@@ -132,7 +132,7 @@
       end
     end
 
-    test.using :testng, :forkmode=>'perTest', :properties=>{ "org.apache.commons.logging.LogFactory" => "org.apache.commons.logging.impl.LogFactoryImpl", "log4j.configuration"=>"test-log4j.properties", "test.ports" => ENV['TEST_PORTS'], "org.apache.ode.scheduler.deleteJobsOnStart" => "true", "org.apache.ode.autoRetireProcess"=>"true" } , :java_args=>['-Xmx2048m', '-XX:MaxPermSize=256m'] #'-Xdebug', '-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=6001',
+    test.using :testng, :forkmode=>'perTest', :properties=>{ "log4j.configurationFile"=>"test-log4j2.xml", "test.ports" => ENV['TEST_PORTS'], "org.apache.ode.scheduler.deleteJobsOnStart" => "true", "org.apache.ode.autoRetireProcess"=>"true" } , :java_args=>['-Xmx2048m', '-XX:MaxPermSize=256m'] #'-Xdebug', '-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=6001',
     test.with [projects("tools", 'bpel-obj'), libs, AXIS2_MODULES.mods, AXIOM, JAVAX.servlet, Buildr::Jetty::REQUIRES, HIBERNATE, DOM4J, H2::REQUIRES, SPRING_TEST, JACKSON].uniq
     webapp_dir = "#{test.compile.target}/webapp"
     test.setup task(:prepare_webapp) do |task|
@@ -168,7 +168,7 @@
 
   desc "ODE APIs"
   define "bpel-api" do
-    compile.with projects("utils", "bpel-nobj", "bpel-schemas"), WSDL4J, XERCES, SLF4J, LOG4J
+    compile.with projects("utils", "bpel-nobj", "bpel-schemas"), WSDL4J, XERCES, SLF4J, LOG4J2
     package :jar
   end
 
@@ -181,9 +181,9 @@
   desc "ODE BPEL Compiler"
   define "bpel-compiler" do
     compile.with projects("bpel-api", "bpel-nobj", "bpel-schemas", "utils"),
-      JAVAX.stream, JAXEN, SAXON, WSDL4J, XALAN, XERCES, COMMONS.collections, SLF4J, LOG4J, JACKSON, OBJECT_DIFF
+      JAVAX.stream, JAXEN, SAXON, WSDL4J, XALAN, XERCES, COMMONS.collections, SLF4J, LOG4J2, JACKSON, OBJECT_DIFF
     test.resources { filter(project("bpel-scripts").path_to("src/main/resources")).into(test.resources.target).run }
-    test.with LOG4J, projects("bpel-obj")
+    test.with LOG4J2, projects("bpel-obj")
     package :jar
   end
 
@@ -203,14 +203,14 @@
   define "bpel-epr" do
     compile.with projects("utils", "bpel-dao", "bpel-api"),
       AXIOM, COMMONS.lang, COMMONS.beanutils, DERBY, JAVAX.connector, JAVAX.stream, JAVAX.transaction, 
-      GERONIMO.transaction, GERONIMO.connector, TRANQL, XMLBEANS, SLF4J, LOG4J, H2::REQUIRES
+      GERONIMO.transaction, GERONIMO.connector, TRANQL, XMLBEANS, SLF4J, LOG4J2, H2::REQUIRES
     test.with XERCES
     package :jar
   end
 
   desc "ODE Clustering"
    define "clustering" do
-     compile.with projects("bpel-api","bpel-store"),HAZELCAST, COMMONS.logging
+     compile.with projects("bpel-api","bpel-store"),HAZELCAST, SLF4J
      package :jar
    end
 
@@ -222,7 +222,7 @@
 
   desc "New ODE BPEL Object Model"
   define "bpel-nobj" do
-    compile.with projects("utils", "bpel-obj"), JACKSON, LOG4J, SAXON, WSDL4J, COMMONS.collections, COMMONS.logging, OBJECT_DIFF
+    compile.with projects("utils", "bpel-obj"), JACKSON, LOG4J2, SAXON, WSDL4J, COMMONS.collections, SLF4J, OBJECT_DIFF
     package :jar
 	test.with XERCES
   end
@@ -242,7 +242,7 @@
 
     compile.with projects("bpel-api", "bpel-compiler", "bpel-dao", "bpel-epr", "bpel-nobj", "bpel-schemas",
       "bpel-store", "utils", "agents","clustering"),
-      COMMONS.collections, COMMONS.httpclient, JACOB, JAVAX.persistence, JAVAX.stream, JAXEN, SAXON, WSDL4J, XMLBEANS, SPRING, SLF4J, LOG4J,
+      COMMONS.collections, COMMONS.httpclient, JACOB, JAVAX.persistence, JAVAX.stream, JAXEN, SAXON, WSDL4J, XMLBEANS, SPRING, SLF4J, LOG4J2,
 	  JACKSON, JAVAX.connector
 
     test.with projects("scheduler-simple", "dao-jpa", "dao-hibernate", "bpel-epr", "bpel-obj"),
@@ -256,7 +256,7 @@
 
   desc "ODE Simple Scheduler"
   define "scheduler-simple" do
-    compile.with projects("bpel-api", "utils"), COMMONS.collections, JAVAX.transaction, SLF4J, LOG4J
+    compile.with projects("bpel-api", "utils"), COMMONS.collections, JAVAX.transaction, SLF4J, LOG4J2
     test.compile.with H2::REQUIRES, HSQLDB, GERONIMO.kernel, GERONIMO.transaction
     test.with H2::REQUIRES, HSQLDB, JAVAX.transaction, JAVAX.resource, JAVAX.connector, 
           GERONIMO.kernel, GERONIMO.transaction, GERONIMO.connector, TRANQL, BACKPORT, JAVAX.ejb
@@ -281,7 +281,7 @@
   define "bpel-store" do
     compile.with projects("bpel-api", "bpel-compiler", "bpel-dao", "bpel-nobj", "bpel-schemas", "bpel-epr",
       "dao-hibernate", "dao-jpa", "utils"),
-      JAVAX.persistence, JAVAX.stream, JAVAX.transaction, HIBERNATE, HSQLDB, XMLBEANS, XERCES, WSDL4J, OPENJPA, SPRING, SLF4J, LOG4J, JACKSON, H2::REQUIRES
+      JAVAX.persistence, JAVAX.stream, JAVAX.transaction, HIBERNATE, HSQLDB, XMLBEANS, XERCES, WSDL4J, OPENJPA, SPRING, SLF4J, LOG4J2, JACKSON, H2::REQUIRES
     compile { open_jpa_enhance }
     resources hibernate_doclet(:package=>"org.apache.ode.store.hib", :excludedtags=>"@version,@author,@todo")
 
@@ -297,7 +297,7 @@
       "bpel-store", "utils", "bpel-epr", "dao-hibernate", "agents", "scheduler-simple"),
       DERBY, JUnit.dependencies, JAVAX.persistence, OPENJPA, WSDL4J, COMMONS.httpclient, COMMONS.io,
       GERONIMO.transaction, GERONIMO.kernel, GERONIMO.connector, JAVAX.connector, JAVAX.ejb, JAVAX.transaction, TRANQL, "tranql:tranql-connector-derby-common:jar:1.1",
-      SPRING_TEST, COMMONS.codec, SLF4J, LOG4J
+      SPRING_TEST, COMMONS.codec, SLF4J, LOG4J2
 
     test.using :properties=>{ "org.apache.ode.autoRetireProcess"=>"true" }
     test.with projects("bpel-nobj", "bpel-obj", "bpel-schemas", "bpel-scripts"),
@@ -310,7 +310,7 @@
   desc "ODE Hibernate DAO Implementation"
   define "dao-hibernate" do
     compile.with projects("bpel-api", "bpel-dao", "bpel-ql", "utils"),
-      COMMONS.lang, JAVAX.transaction, HIBERNATE, DOM4J, SLF4J, LOG4J
+      COMMONS.lang, JAVAX.transaction, HIBERNATE, DOM4J, SLF4J, LOG4J2
     resources hibernate_doclet(:package=>"org.apache.ode.daohib.bpel.hobj", :excludedtags=>"@version,@author,@todo")
 
     # doclet does not support not-found="ignore"
@@ -381,7 +381,7 @@
   desc "ODE OpenJPA DAO Implementation"
   define "dao-jpa" do
     compile.with projects("bpel-api", "bpel-dao", "utils"),
-      COMMONS.collections, JAVAX.connector, JAVAX.persistence, JAVAX.transaction, OPENJPA, XERCES, COMMONS.logging, SLF4J, LOG4J
+      COMMONS.collections, JAVAX.connector, JAVAX.persistence, JAVAX.transaction, OPENJPA, XERCES, SLF4J, LOG4J2
     compile { open_jpa_enhance }
     package :jar
   end
@@ -404,9 +404,9 @@
     h2_db = H2.create("ode-jpa-h2", _("target/h2-jpadb")=>_("target/h2.sql"))
 
     test.with projects("bpel-api", "bpel-dao", "bpel-nobj", "bpel-epr", "dao-jpa", "utils"),
-      BACKPORT, COMMONS.collections, COMMONS.lang, COMMONS.logging, GERONIMO.transaction,
+      BACKPORT, COMMONS.collections, COMMONS.lang, GERONIMO.transaction,
       GERONIMO.kernel, GERONIMO.connector, HSQLDB, JAVAX.connector, JAVAX.ejb, JAVAX.persistence,
-      JAVAX.transaction, LOG4J, OPENJPA, XERCES, WSDL4J, H2::REQUIRES
+      JAVAX.transaction, LOG4J2, OPENJPA, XERCES, WSDL4J, H2::REQUIRES, SLF4J
 
     build derby_db
     build h2_db
@@ -420,7 +420,7 @@
   define "jbi" do
     compile.with projects("bpel-api", "bpel-connector", "bpel-dao", "bpel-epr", "bpel-nobj", 
       "bpel-runtime", "scheduler-simple", "bpel-schemas", "bpel-store", "utils", "agents"),
-      AXIOM, COMMONS.logging, COMMONS.pool, JAVAX.transaction, GERONIMO.transaction, JBI, SLF4J, LOG4J, WSDL4J, XERCES
+      AXIOM, COMMONS.pool, JAVAX.transaction, GERONIMO.transaction, JBI, SLF4J, LOG4J2, WSDL4J, XERCES
 
     package(:jar)
     package(:jbi).tap do |jbi|
@@ -448,7 +448,7 @@
       JAVAX.transaction, JAXEN, JBI, OPENJPA, SAXON, SERVICEMIX, SPRING, TRANQL,
       XALAN, XBEAN, XMLBEANS,
       SLF4J,
-      LOG4J,
+      LOG4J2,
       DOM4J,
       HIBERNATE,
 	  JACKSON
@@ -465,8 +465,8 @@
 
   desc "ODE Commmands for Karaf"
   define "jbi-karaf-commands" do
-    compile.with projects("bpel-schemas", "jbi"), JBI, KARAF, XMLBEANS, SLF4J, LOG4J
-    libs = artifacts(projects("bpel-schemas", "jbi"), JBI, KARAF, XMLBEANS, SLF4J, LOG4J)
+    compile.with projects("bpel-schemas", "jbi"), JBI, KARAF, XMLBEANS, SLF4J, LOG4J2
+    libs = artifacts(projects("bpel-schemas", "jbi"), JBI, KARAF, XMLBEANS, SLF4J, LOG4J2)
     package(:bundle).tap do |bnd|
       bnd.classpath = [_("target/classes"), libs].flatten
       BUNDLE_VERSIONS.each {|key, value| bnd[key] = value }
@@ -563,7 +563,7 @@
                                   "bpel-schemas", "bpel-store", "dao-hibernate", "dao-jpa", "utils", "agents"))
     libs = artifacts(ANT, AXIOM, BACKPORT, COMMONS.codec, COMMONS.collections, COMMONS.dbcp, COMMONS.lang, COMMONS.pool,
                      COMMONS.primitives, COMMONS.io, DERBY, GERONIMO.connector, GERONIMO.transaction, JACOB, JAVAX.connector, 
-                     JAVAX.ejb, JAVAX.jms, JAVAX.persistence, JAVAX.stream, JAVAX.transaction, JAXEN, LOG4J, OPENJPA, 
+                     JAVAX.ejb, JAVAX.jms, JAVAX.persistence, JAVAX.stream, JAVAX.transaction, JAXEN, LOG4J2, OPENJPA, 
                      SAXON, TRANQL, XALAN, XERCES, XMLBEANS, WSDL4J, KARAF)
     compile.with projects("bpel-schemas", "jbi", "bpel-api"), JBI, libs, KARAF, SPRING, SPRING_OSGI
 
@@ -606,19 +606,19 @@
 
   desc "ODE JCA Server"
   define "jca-server" do
-    compile.with projects("jca-ra", "utils"), SLF4J, LOG4J
+    compile.with projects("jca-ra", "utils"), SLF4J, LOG4J2
     package :jar
   end
 
   desc "ODE Tools"
   define "tools" do
-    compile.with projects("bpel-compiler", "utils", "bpel-nobj"), ANT, COMMONS.httpclient, SLF4J, LOG4J
+    compile.with projects("bpel-compiler", "utils", "bpel-nobj"), ANT, COMMONS.httpclient, SLF4J, LOG4J2
     package :jar
   end
 
   desc "ODE Utils"
   define "utils" do
-    compile.with AXIOM, AXIS2_ALL, COMMONS.lang, COMMONS.collections, COMMONS.pool, COMMONS.httpclient, COMMONS.codec, XERCES, JAVAX.stream, WSDL4J, SAXON, SLF4J, LOG4J
+    compile.with AXIOM, AXIS2_ALL, COMMONS.lang, COMMONS.collections, COMMONS.pool, COMMONS.httpclient, COMMONS.codec, XERCES, JAVAX.stream, WSDL4J, SAXON, SLF4J, LOG4J2
     # env variable required by HierarchicalPropertiesTest
     test.using :environment=>{ 'TEST_DUMMY_ENV_VAR'=>42}
     test.exclude "*TestResources"
@@ -669,7 +669,7 @@
 
         # Libraries
         zip.path("lib").include artifacts(COMMONS.codec, COMMONS.httpclient,
-          COMMONS.pool, COMMONS.collections, JAXEN, SAXON, WSDL4J, XALAN, XERCES, SLF4J, LOG4J)
+          COMMONS.pool, COMMONS.collections, JAXEN, SAXON, WSDL4J, XALAN, XERCES, SLF4J, LOG4J2)
         project("ode").projects("utils", "tools", "bpel-compiler", "bpel-api", "bpel-nobj", "bpel-schemas").
           map(&:packages).flatten.each do |pkg|
             zip.include(pkg.to_s, :as=>"#{pkg.id}.#{pkg.type}", :path=>"lib") unless ['sources', 'javadoc'].include?(pkg.classifier)
diff --git a/axis2-war/src/main/webapp/WEB-INF/classes/log4j2.xml b/axis2-war/src/main/webapp/WEB-INF/classes/log4j2.xml
new file mode 100644
index 0000000..0ebc603
--- /dev/null
+++ b/axis2-war/src/main/webapp/WEB-INF/classes/log4j2.xml
@@ -0,0 +1,37 @@
+<Configuration>
+    <Appenders>
+        <File name="FILE" fileName="ode.log" append="false">
+            <PatternLayout pattern="%d{ABSOLUTE} %-5p [%c{1}] %m%n"/>
+        </File>
+        <Console name="STDOUT" target="SYSTEM_OUT">
+            <PatternLayout pattern="%d{ABSOLUTE} %-5p [%c{1}] %m%n"/>
+        </Console>
+        <Async name="Async">
+            <!--<AppenderRef ref="FILE"/> -->
+            <AppenderRef ref="STDOUT"/>
+        </Async>
+    </Appenders>
+
+    <Loggers>
+        <Logger name="org.apache.ode" level="info" additivity="false">
+            <AppenderRef ref="FILE"/>
+        </Logger>
+        <Logger name="org.apache.axis2" level="info" additivity="false">
+            <AppenderRef ref="FILE"/>
+        </Logger>
+        <Logger name="org.hibernate" level="info" additivity="false">
+            <AppenderRef ref="FILE"/>
+        </Logger>
+        <Logger name="org.apache.openjpa" level="info" additivity="false">
+            <AppenderRef ref="FILE"/>
+        </Logger>
+        <Logger name="org.springframework" level="error" additivity="false">
+            <AppenderRef ref="FILE"/>
+        </Logger>
+
+        <Root level="error">
+            <AppenderRef ref="Async"/>
+        </Root>
+    </Loggers>
+
+</Configuration>
diff --git a/axis2-war/src/main/webapp/WEB-INF/web.xml b/axis2-war/src/main/webapp/WEB-INF/web.xml
index 5912dcd..62d1fd2 100644
--- a/axis2-war/src/main/webapp/WEB-INF/web.xml
+++ b/axis2-war/src/main/webapp/WEB-INF/web.xml
@@ -19,10 +19,32 @@
   ~ under the License.
   -->
 
-<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
+<web-app xmlns="http://java.sun.com/xml/ns/javaee"
+          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+          xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
+          http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
+          version="2.5">
+     <display-name>Apache-Axis2</display-name>
 
-<web-app>
-    <display-name>Apache-Axis2</display-name>
+    <listener>
+        <listener-class>org.apache.logging.log4j.web.Log4jServletContextListener</listener-class>
+    </listener>
+
+    <filter>
+        <filter-name>log4jServletFilter</filter-name>
+        <filter-class>org.apache.logging.log4j.web.Log4jServletFilter</filter-class>
+    </filter>
+
+    <filter-mapping>
+        <filter-name>log4jServletFilter</filter-name>
+        <url-pattern>/*</url-pattern>
+        <dispatcher>REQUEST</dispatcher>
+        <dispatcher>FORWARD</dispatcher>
+        <dispatcher>INCLUDE</dispatcher>
+        <dispatcher>ERROR</dispatcher>
+        <dispatcher>ASYNC</dispatcher><!-- Servlet 3.0 w/ disabled auto-initialization only; not supported in 2.5 -->
+    </filter-mapping>
+
     <servlet>
         <servlet-name>AxisServlet</servlet-name>
         <display-name>Apache-Axis Servlet</display-name>
diff --git a/axis2-war/src/test/java/org/apache/ode/axis2/Axis2TestBase.java b/axis2-war/src/test/java/org/apache/ode/axis2/Axis2TestBase.java
index a718462..e57b8ef 100644
--- a/axis2-war/src/test/java/org/apache/ode/axis2/Axis2TestBase.java
+++ b/axis2-war/src/test/java/org/apache/ode/axis2/Axis2TestBase.java
@@ -29,8 +29,8 @@
 import org.apache.axis2.description.WSDL11ToAxisServiceBuilder;
 import org.apache.axis2.engine.AxisServer;
 import org.apache.axis2.engine.MessageReceiver;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.commons.lang.StringUtils;
 import org.apache.ode.axis2.hooks.ODEAxisService;
 import org.apache.ode.axis2.util.Axis2UriResolver;
@@ -71,7 +71,7 @@
     private static final int DEFAULT_TEST_PORT_1 = 7070;
     private static final String DEFAULT_TEST_PORTS = DEFAULT_TEST_PORT_0+","+DEFAULT_TEST_PORT_1;
 
-    private static final Log log = LogFactory.getLog(Axis2TestBase.class);
+    private static final Logger log = LoggerFactory.getLogger(Axis2TestBase.class);
 
     protected ODEAxis2Server server;
 
diff --git a/axis2-war/src/test/java/org/apache/ode/axis2/DummyService.java b/axis2-war/src/test/java/org/apache/ode/axis2/DummyService.java
index ff89390..e3e2629 100644
--- a/axis2-war/src/test/java/org/apache/ode/axis2/DummyService.java
+++ b/axis2-war/src/test/java/org/apache/ode/axis2/DummyService.java
@@ -23,8 +23,8 @@
 import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMFactory;
 import org.apache.axis2.AxisFault;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import javax.xml.namespace.QName;
 
@@ -33,7 +33,7 @@
  */
 public class DummyService {
 
-    private static final Log log = LogFactory.getLog(DummyService.class);
+    private static final Logger log = LoggerFactory.getLogger(DummyService.class);
 
     public String hello(String in) {
         log.debug("#### IN HELLO ####");
diff --git a/axis2-war/src/test/java/org/apache/ode/axis2/SoapHeader2Test.java b/axis2-war/src/test/java/org/apache/ode/axis2/SoapHeader2Test.java
index 42e8853..ff89168 100644
--- a/axis2-war/src/test/java/org/apache/ode/axis2/SoapHeader2Test.java
+++ b/axis2-war/src/test/java/org/apache/ode/axis2/SoapHeader2Test.java
@@ -19,8 +19,8 @@
 
 package org.apache.ode.axis2;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.axis2.Axis2TestBase;
 import org.apache.ode.axis2.JettyWrapper;
 import org.apache.ode.axis2.httpbinding.HttpBindingTest;
@@ -58,7 +58,7 @@
  */
 public class SoapHeader2Test extends Axis2TestBase {
 
-    private static final Log log = LogFactory.getLog(SoapHeader2Test.class);
+    private static final Logger log = LoggerFactory.getLogger(SoapHeader2Test.class);
 
     protected JettyWrapper jettyWrapper;
 
@@ -119,4 +119,4 @@
         }
     }
 
-}
\ No newline at end of file
+}
diff --git a/axis2-war/src/test/java/org/apache/ode/axis2/httpbinding/HttpBindingTest.java b/axis2-war/src/test/java/org/apache/ode/axis2/httpbinding/HttpBindingTest.java
index 8ecb64c..10b1c92 100644
--- a/axis2-war/src/test/java/org/apache/ode/axis2/httpbinding/HttpBindingTest.java
+++ b/axis2-war/src/test/java/org/apache/ode/axis2/httpbinding/HttpBindingTest.java
@@ -19,8 +19,8 @@
 
 package org.apache.ode.axis2.httpbinding;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.axis2.Axis2TestBase;
 import org.apache.ode.axis2.JettyWrapper;
 import static org.testng.AssertJUnit.assertTrue;
@@ -45,7 +45,7 @@
  */
 public class HttpBindingTest extends Axis2TestBase {
 
-    private static final Log log = LogFactory.getLog(HttpBindingTest.class);
+    private static final Logger log = LoggerFactory.getLogger(HttpBindingTest.class);
 
     protected JettyWrapper jettyWrapper;
 
diff --git a/axis2-war/src/test/java/org/apache/ode/axis2/instancecleanup/SystemCronCleanupTest.java b/axis2-war/src/test/java/org/apache/ode/axis2/instancecleanup/SystemCronCleanupTest.java
index b567b9f..f67f34e 100644
--- a/axis2-war/src/test/java/org/apache/ode/axis2/instancecleanup/SystemCronCleanupTest.java
+++ b/axis2-war/src/test/java/org/apache/ode/axis2/instancecleanup/SystemCronCleanupTest.java
@@ -18,7 +18,7 @@
  */
 package org.apache.ode.axis2.instancecleanup;
 
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.dao.ProcessDAO;
 import org.apache.ode.bpel.dao.ProcessInstanceDAO;
 import org.apache.ode.bpel.engine.cron.SystemSchedulesConfig;
@@ -64,7 +64,7 @@
             sendRequestFile("http://localhost:8888/processes/FirstProcess/FirstProcess/FirstProcess/Client", bundleName, "testRequest.soap");
             // every second, clean up cron job kicks in
             Thread.sleep(2000);
-            LogFactory.getLog(SystemCronCleanupTest.class).debug("============ASSERT INSTANCE CLEANUP===============");
+            LoggerFactory.getLogger(SystemCronCleanupTest.class).debug("============ASSERT INSTANCE CLEANUP===============");
             process = assertInstanceCleanup(instances, activityRecoveries, correlationSets, faults, exchanges, routes, messsages, partnerLinks, scopes, variables, events, largeData);
         } finally {
             server.undeployProcess(bundleName);
diff --git a/axis2-war/src/test/java/org/apache/ode/axis2/management/DeploymentTest.java b/axis2-war/src/test/java/org/apache/ode/axis2/management/DeploymentTest.java
index 37bb43a..c23f927 100644
--- a/axis2-war/src/test/java/org/apache/ode/axis2/management/DeploymentTest.java
+++ b/axis2-war/src/test/java/org/apache/ode/axis2/management/DeploymentTest.java
@@ -33,8 +33,8 @@
 import org.testng.annotations.AfterMethod;
 import org.testng.annotations.BeforeMethod;
 import org.testng.annotations.Test;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import javax.xml.namespace.QName;
 import java.io.ByteArrayOutputStream;
@@ -43,7 +43,7 @@
 import java.util.Iterator;
 
 public class DeploymentTest extends Axis2TestBase {
-    private static final Log __log = LogFactory.getLog(DeploymentTest.class);
+    private static final Logger __log = LoggerFactory.getLogger(DeploymentTest.class);
 
     private OMFactory _factory;
     private ServiceClientUtil _client;
diff --git a/axis2-war/src/test/java/org/apache/ode/dao/jpa/ProcessInstanceProfileDAOImpl.java b/axis2-war/src/test/java/org/apache/ode/dao/jpa/ProcessInstanceProfileDAOImpl.java
index dd4b6d2..7a10cf4 100644
--- a/axis2-war/src/test/java/org/apache/ode/dao/jpa/ProcessInstanceProfileDAOImpl.java
+++ b/axis2-war/src/test/java/org/apache/ode/dao/jpa/ProcessInstanceProfileDAOImpl.java
@@ -19,8 +19,8 @@
 
 package org.apache.ode.dao.jpa;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.dao.ActivityRecoveryDAO;
 import org.apache.ode.bpel.dao.CorrelationSetDAO;
 import org.apache.ode.bpel.dao.FaultDAO;
@@ -43,7 +43,7 @@
  */
 public class ProcessInstanceProfileDAOImpl extends ProcessProfileDAOImpl implements ProcessInstanceProfileDAO {
     @SuppressWarnings("unused")
-    private static final Log __log = LogFactory.getLog(ProcessInstanceProfileDAOImpl.class);
+    private static final Logger __log = LoggerFactory.getLogger(ProcessInstanceProfileDAOImpl.class);
 
     private ProcessInstanceDAOImpl instance;
 
@@ -106,4 +106,4 @@
 
         return query.getResultList();
     }
-}
\ No newline at end of file
+}
diff --git a/axis2-war/src/test/java/org/apache/ode/dao/jpa/ProcessProfileDAOImpl.java b/axis2-war/src/test/java/org/apache/ode/dao/jpa/ProcessProfileDAOImpl.java
index a9fbbb1..98d8846 100644
--- a/axis2-war/src/test/java/org/apache/ode/dao/jpa/ProcessProfileDAOImpl.java
+++ b/axis2-war/src/test/java/org/apache/ode/dao/jpa/ProcessProfileDAOImpl.java
@@ -21,8 +21,8 @@
 
 import java.util.List;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.dao.ActivityRecoveryDAO;
 import org.apache.ode.bpel.dao.CorrelationSetDAO;
 import org.apache.ode.bpel.dao.CorrelatorDAO;
@@ -44,7 +44,7 @@
  */
 public class ProcessProfileDAOImpl extends OpenJPADAO implements ProcessProfileDAO {
     @SuppressWarnings("unused")
-    private static final Log __log = LogFactory.getLog(ProcessProfileDAOImpl.class);
+    private static final Logger __log = LoggerFactory.getLogger(ProcessProfileDAOImpl.class);
 
     protected EntityManager em;
     protected ProcessDAOImpl process;
@@ -119,4 +119,4 @@
 
         return query.getResultList();
     }
-}
\ No newline at end of file
+}
diff --git a/axis2-war/src/test/java/org/apache/ode/daohib/bpel/ProcessInstanceProfileDaoImpl.java b/axis2-war/src/test/java/org/apache/ode/daohib/bpel/ProcessInstanceProfileDaoImpl.java
index 9fda7b0..de900d0 100644
--- a/axis2-war/src/test/java/org/apache/ode/daohib/bpel/ProcessInstanceProfileDaoImpl.java
+++ b/axis2-war/src/test/java/org/apache/ode/daohib/bpel/ProcessInstanceProfileDaoImpl.java
@@ -19,8 +19,8 @@
 
 package org.apache.ode.daohib.bpel;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.dao.ActivityRecoveryDAO;
 import org.apache.ode.bpel.dao.CorrelationSetDAO;
 import org.apache.ode.bpel.dao.FaultDAO;
@@ -54,7 +54,7 @@
  */
 public class ProcessInstanceProfileDaoImpl extends ProcessProfileDaoImpl implements ProcessInstanceProfileDAO {
     @SuppressWarnings("unused")
-    private static final Log __log = LogFactory.getLog(ProcessInstanceProfileDaoImpl.class);
+    private static final Logger __log = LoggerFactory.getLogger(ProcessInstanceProfileDaoImpl.class);
 
     private ProcessInstanceDaoImpl instance;
 
@@ -132,4 +132,4 @@
 
         return results;
     }
-}
\ No newline at end of file
+}
diff --git a/axis2-war/src/test/java/org/apache/ode/daohib/bpel/ProcessProfileDaoImpl.java b/axis2-war/src/test/java/org/apache/ode/daohib/bpel/ProcessProfileDaoImpl.java
index a660c45..3f6be94 100644
--- a/axis2-war/src/test/java/org/apache/ode/daohib/bpel/ProcessProfileDaoImpl.java
+++ b/axis2-war/src/test/java/org/apache/ode/daohib/bpel/ProcessProfileDaoImpl.java
@@ -19,8 +19,8 @@
 
 package org.apache.ode.daohib.bpel;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.dao.ActivityRecoveryDAO;
 import org.apache.ode.bpel.dao.CorrelationSetDAO;
 import org.apache.ode.bpel.dao.CorrelatorDAO;
@@ -58,7 +58,7 @@
  */
 public class ProcessProfileDaoImpl extends HibernateDao implements ProcessProfileDAO {
     @SuppressWarnings("unused")
-    private static final Log __log = LogFactory.getLog(ProcessProfileDaoImpl.class);
+    private static final Logger __log = LoggerFactory.getLogger(ProcessProfileDaoImpl.class);
 
     protected ProcessDaoImpl process;
 
@@ -153,4 +153,4 @@
 
         return results;
     }
-}
\ No newline at end of file
+}
diff --git a/axis2-war/src/test/resources/test-log4j2.xml b/axis2-war/src/test/resources/test-log4j2.xml
new file mode 100644
index 0000000..ed2b83d
--- /dev/null
+++ b/axis2-war/src/test/resources/test-log4j2.xml
@@ -0,0 +1,33 @@
+<Configuration>
+    <Appenders>
+        <File name="FILE" fileName="target/test/test.log" append="false">
+            <PatternLayout pattern="%d{ABSOLUTE} %-5p [%c{1}] %m%n"/>
+        </File>
+        <Console name="STDOUT" target="SYSTEM_OUT">
+            <PatternLayout pattern="%d{ABSOLUTE} %-5p [%c{1}] %m%n"/>
+        </Console>
+        <Async name="Async">
+            <AppenderRef ref="FILE"/>
+            <AppenderRef ref="STDOUT"/>
+        </Async>
+    </Appenders>
+
+    <Loggers>
+        <Logger name="org.apache.ode" level="info" additivity="false">
+            <AppenderRef ref="FILE"/>
+        </Logger>
+        <Logger name="org.apache.axis2" level="info" additivity="false">
+            <AppenderRef ref="FILE"/>
+        </Logger>
+        <Logger name="org.hibernate" level="warn" additivity="false">
+            <AppenderRef ref="FILE"/>
+        </Logger>
+        <Logger name="org.apache.openjpa" level="warn" additivity="false">
+           <AppenderRef ref="FILE"/>
+        </Logger>
+
+        <Root level="info">
+            <AppenderRef ref="Async"/>
+        </Root>
+    </Loggers>
+</Configuration>
\ No newline at end of file
diff --git a/axis2/src/main/java/org/apache/ode/axis2/AuthenticationHelper.java b/axis2/src/main/java/org/apache/ode/axis2/AuthenticationHelper.java
index b1bf1a7..d29c58e 100644
--- a/axis2/src/main/java/org/apache/ode/axis2/AuthenticationHelper.java
+++ b/axis2/src/main/java/org/apache/ode/axis2/AuthenticationHelper.java
@@ -22,8 +22,8 @@
 import org.apache.axis2.client.Options;
 import org.apache.axis2.transport.http.HTTPConstants;
 import org.apache.axis2.transport.http.HttpTransportProperties;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.iapi.PartnerRoleMessageExchange;
 import org.apache.ode.utils.DOMUtils;
 import org.w3c.dom.Element;
@@ -35,7 +35,7 @@
  */
 public class AuthenticationHelper {
 
-    private static final Log __log = LogFactory.getLog(AuthenticationHelper.class);
+    private static final Logger __log = LoggerFactory.getLogger(AuthenticationHelper.class);
 
     private static final String AUTHENTICATE_ELEMENT = "authenticate";
 
diff --git a/axis2/src/main/java/org/apache/ode/axis2/BindingContextImpl.java b/axis2/src/main/java/org/apache/ode/axis2/BindingContextImpl.java
index 0941904..13b5b44 100644
--- a/axis2/src/main/java/org/apache/ode/axis2/BindingContextImpl.java
+++ b/axis2/src/main/java/org/apache/ode/axis2/BindingContextImpl.java
@@ -36,8 +36,8 @@
 import org.apache.axis2.description.Parameter;
 import org.apache.axis2.engine.AxisConfigurator;
 import org.apache.commons.collections.map.MultiKeyMap;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.agents.memory.SizingAgent;
 import org.apache.ode.axis2.hooks.ODEAxisService;
 import org.apache.ode.axis2.hooks.ODEMessageReceiver;
@@ -58,7 +58,7 @@
  *
  */
 public class BindingContextImpl implements BindingContext {
-    protected final Log __log = LogFactory.getLog(getClass());
+    protected final Logger __log = LoggerFactory.getLogger(getClass());
 
     private ODEServer _server;
     private MultiKeyMap _services = new MultiKeyMap();
diff --git a/axis2/src/main/java/org/apache/ode/axis2/EndpointReferenceContextImpl.java b/axis2/src/main/java/org/apache/ode/axis2/EndpointReferenceContextImpl.java
index 5eb3f04..2f74e33 100644
--- a/axis2/src/main/java/org/apache/ode/axis2/EndpointReferenceContextImpl.java
+++ b/axis2/src/main/java/org/apache/ode/axis2/EndpointReferenceContextImpl.java
@@ -21,8 +21,8 @@
 
 import javax.xml.namespace.QName;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.epr.EndpointFactory;
 import org.apache.ode.bpel.epr.MutableEndpoint;
 import org.apache.ode.bpel.iapi.EndpointReference;
@@ -35,7 +35,7 @@
 
 public class EndpointReferenceContextImpl implements EndpointReferenceContext {
 
-  private static final Log __log = LogFactory.getLog(EndpointReferenceContextImpl.class);
+  private static final Logger __log = LoggerFactory.getLogger(EndpointReferenceContextImpl.class);
 
   public EndpointReferenceContextImpl(ODEServer server) {
   }
diff --git a/axis2/src/main/java/org/apache/ode/axis2/MessageExchangeContextImpl.java b/axis2/src/main/java/org/apache/ode/axis2/MessageExchangeContextImpl.java
index b64faff..ca80c28 100644
--- a/axis2/src/main/java/org/apache/ode/axis2/MessageExchangeContextImpl.java
+++ b/axis2/src/main/java/org/apache/ode/axis2/MessageExchangeContextImpl.java
@@ -19,8 +19,8 @@
 
 package org.apache.ode.axis2;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.iapi.BpelEngineException;
 import org.apache.ode.bpel.iapi.ContextException;
 import org.apache.ode.bpel.iapi.MessageExchangeContext;
@@ -34,7 +34,7 @@
  */
 public class MessageExchangeContextImpl implements MessageExchangeContext {
 
-    private static final Log __log = LogFactory.getLog(MessageExchangeContextImpl.class);
+    private static final Logger __log = LoggerFactory.getLogger(MessageExchangeContextImpl.class);
 
     private ODEServer _server;
 
diff --git a/axis2/src/main/java/org/apache/ode/axis2/ODEAxis2Server.java b/axis2/src/main/java/org/apache/ode/axis2/ODEAxis2Server.java
index ebc86f3..5458cbb 100644
--- a/axis2/src/main/java/org/apache/ode/axis2/ODEAxis2Server.java
+++ b/axis2/src/main/java/org/apache/ode/axis2/ODEAxis2Server.java
@@ -45,15 +45,15 @@
 import org.apache.axis2.description.WSDL11ToAxisServiceBuilder;
 import org.apache.axis2.engine.AxisServer;
 import org.apache.axis2.engine.MessageReceiver;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.axis2.hooks.ODEAxisService;
 import org.apache.ode.axis2.util.Axis2UriResolver;
 import org.apache.ode.axis2.util.Axis2WSDLLocator;
 import org.apache.axis2.transport.http.SimpleHTTPServer;
 
 public class ODEAxis2Server extends AxisServer {
-    private static final Log log = LogFactory.getLog(ODEAxis2Server.class);
+    private static final Logger log = LoggerFactory.getLogger(ODEAxis2Server.class);
 
         ODEServer _ode;
         String odeRootDir;
diff --git a/axis2/src/main/java/org/apache/ode/axis2/ODEServer.java b/axis2/src/main/java/org/apache/ode/axis2/ODEServer.java
index 0a13c4a..e002695 100644
--- a/axis2/src/main/java/org/apache/ode/axis2/ODEServer.java
+++ b/axis2/src/main/java/org/apache/ode/axis2/ODEServer.java
@@ -24,8 +24,8 @@
 import org.apache.commons.httpclient.MultiThreadedHttpConnectionManager;
 import org.apache.commons.httpclient.params.HttpConnectionManagerParams;
 import org.apache.commons.httpclient.util.IdleConnectionTimeoutThread;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.axis2.deploy.DeploymentPoller;
 import org.apache.ode.axis2.service.DeploymentWebService;
 import org.apache.ode.axis2.service.ManagementService;
@@ -74,8 +74,8 @@
  */
 public class ODEServer {
 
-    protected final Log __log = LogFactory.getLog(getClass());
-    protected final Log __logTx = LogFactory.getLog("org.apache.ode.tx");
+    protected final Logger __log = LoggerFactory.getLogger(getClass());
+    protected final Logger __logTx = LoggerFactory.getLogger("org.apache.ode.tx");
 
     private static final Messages __msgs = Messages.getMessages(Messages.class);
 
@@ -444,7 +444,7 @@
             if (__logTx.isDebugEnabled() && System.getProperty("ode.debug.tx") != null)
                 _txMgr = new DebugTxMgr(_txMgr);
         } catch (Exception e) {
-            __log.fatal("Couldn't initialize a transaction manager with factory: " + txFactoryName, e);
+            __log.error("Couldn't initialize a transaction manager with factory: " + txFactoryName, e);
             throw new ServletException("Couldn't initialize a transaction manager with factory: " + txFactoryName, e);
         }
     }
diff --git a/axis2/src/main/java/org/apache/ode/axis2/ODEService.java b/axis2/src/main/java/org/apache/ode/axis2/ODEService.java
index f7e9b9a..92b5d60 100644
--- a/axis2/src/main/java/org/apache/ode/axis2/ODEService.java
+++ b/axis2/src/main/java/org/apache/ode/axis2/ODEService.java
@@ -43,8 +43,8 @@
 import org.apache.axis2.description.AxisService;
 import org.apache.axis2.description.TwoChannelAxisOperation;
 import org.apache.axis2.transport.jms.JMSConstants;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.axis2.util.SoapMessageConverter;
 import org.apache.ode.bpel.engine.BpelServerImpl;
 import org.apache.ode.bpel.epr.EndpointFactory;
@@ -69,7 +69,7 @@
  */
 public class ODEService {
 
-    private static final Log __log = LogFactory.getLog(ODEService.class);
+    private static final Logger __log = LoggerFactory.getLogger(ODEService.class);
 
     public static final String CALLBACK_SESSION_ENDPOINT = "callbackSessionEndpoint";
     public static final String TARGET_SESSION_ENDPOINT = "targetSessionEndpoint";
diff --git a/axis2/src/main/java/org/apache/ode/axis2/SoapExternalService.java b/axis2/src/main/java/org/apache/ode/axis2/SoapExternalService.java
index 6a785ed..4468bdc 100644
--- a/axis2/src/main/java/org/apache/ode/axis2/SoapExternalService.java
+++ b/axis2/src/main/java/org/apache/ode/axis2/SoapExternalService.java
@@ -32,8 +32,8 @@
 import org.apache.axis2.transport.jms.JMSConstants;
 import org.apache.axis2.transport.http.HTTPConstants;
 import org.apache.axis2.wsdl.WSDLConstants;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.commons.httpclient.MultiThreadedHttpConnectionManager;
 import org.apache.neethi.Policy;
 import org.apache.neethi.PolicyEngine;
@@ -81,7 +81,7 @@
  */
 public class SoapExternalService implements ExternalService {
 
-    private static final Log __log = LogFactory.getLog(ExternalService.class);
+    private static final Logger __log = LoggerFactory.getLogger(ExternalService.class);
 
     private static final org.apache.ode.utils.wsdl.Messages msgs = Messages.getMessages(Messages.class);
 
diff --git a/axis2/src/main/java/org/apache/ode/axis2/deploy/DeploymentPoller.java b/axis2/src/main/java/org/apache/ode/axis2/deploy/DeploymentPoller.java
index 169ca4f..0ae7ea0 100644
--- a/axis2/src/main/java/org/apache/ode/axis2/deploy/DeploymentPoller.java
+++ b/axis2/src/main/java/org/apache/ode/axis2/deploy/DeploymentPoller.java
@@ -38,8 +38,8 @@
 
 package org.apache.ode.axis2.deploy;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.axis2.ODEServer;
 import org.apache.ode.bpel.clapi.ClusterLock;
 import org.apache.ode.bpel.engine.cron.CronScheduler;
@@ -59,7 +59,7 @@
  */
 public class DeploymentPoller {
 
-    private static Log __log = LogFactory.getLog(DeploymentPoller.class);
+    private static Logger __log = LoggerFactory.getLogger(DeploymentPoller.class);
 
     /** The polling interval. */
     private static final long POLL_TIME = 3000;
@@ -294,7 +294,7 @@
             try {
                 join();
             } catch (InterruptedException ie) {
-                __log.fatal("Thread unexpectedly interrupted.", ie);
+                __log.error("Thread unexpectedly interrupted.", ie);
             }
         }
 
@@ -311,7 +311,7 @@
                     }
                 }
             } catch (Throwable t) {
-                __log.fatal("Encountered an unexpected error.  Exiting poller...", t);
+                __log.error("Encountered an unexpected error.  Exiting poller...", t);
             }
         }
     }
diff --git a/axis2/src/main/java/org/apache/ode/axis2/hooks/ODEAxisOperationDispatcher.java b/axis2/src/main/java/org/apache/ode/axis2/hooks/ODEAxisOperationDispatcher.java
index c6872a4..03a6808 100644
--- a/axis2/src/main/java/org/apache/ode/axis2/hooks/ODEAxisOperationDispatcher.java
+++ b/axis2/src/main/java/org/apache/ode/axis2/hooks/ODEAxisOperationDispatcher.java
@@ -30,8 +30,8 @@
 import org.apache.axis2.engine.AxisConfiguration;
 import org.apache.axis2.i18n.Messages;
 import org.apache.commons.collections.map.MultiKeyMap;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import javax.xml.namespace.QName;
 
@@ -44,7 +44,7 @@
 
     /** Field NAME */
     public static final String NAME = "ODEAxisOperationDispatcher";
-    private static final Log log = LogFactory.getLog(ODEAxisOperationDispatcher.class);
+    private static final Logger log = LoggerFactory.getLogger(ODEAxisOperationDispatcher.class);
     QName operationName = null;
 
     public AxisOperation findOperation(AxisService service, MessageContext messageContext)
@@ -134,4 +134,4 @@
         _elmtToOperation.put(axisServiceName, elmtName, operationName);
     }
 
-}
\ No newline at end of file
+}
diff --git a/axis2/src/main/java/org/apache/ode/axis2/hooks/ODEAxisService.java b/axis2/src/main/java/org/apache/ode/axis2/hooks/ODEAxisService.java
index 01d6dd4..5d83c81 100644
--- a/axis2/src/main/java/org/apache/ode/axis2/hooks/ODEAxisService.java
+++ b/axis2/src/main/java/org/apache/ode/axis2/hooks/ODEAxisService.java
@@ -46,8 +46,8 @@
 import org.apache.axis2.engine.AxisConfiguration;
 import org.apache.axis2.engine.MessageReceiver;
 import org.apache.axis2.transport.jms.JMSConstants;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.axis2.OdeFault;
 import org.apache.ode.axis2.util.Axis2UriResolver;
 import org.apache.ode.axis2.util.Axis2WSDLLocator;
@@ -67,7 +67,7 @@
  */
 public class ODEAxisService {
 
-    private static final Log LOG = LogFactory.getLog(ODEAxisService.class);
+    private static final Logger LOG = LoggerFactory.getLogger(ODEAxisService.class);
 
     public static AxisService createService(AxisConfiguration axisConfig, ProcessConf pconf, QName wsdlServiceName, String portName) throws AxisFault {
         Definition wsdlDefinition = pconf.getDefinitionForService(wsdlServiceName);
diff --git a/axis2/src/main/java/org/apache/ode/axis2/hooks/ODEAxisServiceDispatcher.java b/axis2/src/main/java/org/apache/ode/axis2/hooks/ODEAxisServiceDispatcher.java
index 0d59b64..00c55a7 100644
--- a/axis2/src/main/java/org/apache/ode/axis2/hooks/ODEAxisServiceDispatcher.java
+++ b/axis2/src/main/java/org/apache/ode/axis2/hooks/ODEAxisServiceDispatcher.java
@@ -31,8 +31,8 @@
 import org.apache.axis2.engine.AxisConfiguration;
 import org.apache.axis2.i18n.Messages;
 import org.apache.commons.collections.map.MultiKeyMap;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.rampart.RampartMessageData;
 import org.apache.neethi.Policy;
 
@@ -46,7 +46,7 @@
 
     /** Field NAME */
     public static final String NAME = "ODEAxisServiceDispatcher";
-    private static final Log log = LogFactory.getLog(ODEAxisServiceDispatcher.class);
+    private static final Logger log = LoggerFactory.getLogger(ODEAxisServiceDispatcher.class);
     QName operationName = null;
 
     public AxisOperation findOperation(AxisService service, MessageContext messageContext)
diff --git a/axis2/src/main/java/org/apache/ode/axis2/hooks/ODEMessageReceiver.java b/axis2/src/main/java/org/apache/ode/axis2/hooks/ODEMessageReceiver.java
index 9f245c3..a594469 100644
--- a/axis2/src/main/java/org/apache/ode/axis2/hooks/ODEMessageReceiver.java
+++ b/axis2/src/main/java/org/apache/ode/axis2/hooks/ODEMessageReceiver.java
@@ -26,8 +26,8 @@
 import org.apache.axis2.receivers.AbstractMessageReceiver;
 import org.apache.axis2.util.MessageContextBuilder;
 import org.apache.axis2.wsdl.WSDLConstants;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.axis2.ODEService;
 
 /**
@@ -35,7 +35,7 @@
  */
 public class ODEMessageReceiver extends AbstractMessageReceiver {
 
-    private static final Log __log = LogFactory.getLog(ODEMessageReceiver.class);
+    private static final Logger __log = LoggerFactory.getLogger(ODEMessageReceiver.class);
 
     private ODEService _service;
 
diff --git a/axis2/src/main/java/org/apache/ode/axis2/hooks/SessionInHandler.java b/axis2/src/main/java/org/apache/ode/axis2/hooks/SessionInHandler.java
index bd1e74e..8f3a6cb 100644
--- a/axis2/src/main/java/org/apache/ode/axis2/hooks/SessionInHandler.java
+++ b/axis2/src/main/java/org/apache/ode/axis2/hooks/SessionInHandler.java
@@ -24,8 +24,8 @@
 import org.apache.axis2.AxisFault;
 import org.apache.axis2.context.MessageContext;
 import org.apache.axis2.handlers.AbstractHandler;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.axis2.ODEService;
 import org.apache.ode.utils.DOMUtils;
 import org.apache.ode.utils.Namespaces;
@@ -41,7 +41,7 @@
 public class SessionInHandler extends AbstractHandler {
     private static final long serialVersionUID = -806564877582696569L;
 
-    private static final Log __log = LogFactory.getLog(SessionInHandler.class);
+    private static final Logger __log = LoggerFactory.getLogger(SessionInHandler.class);
 
     public InvocationResponse invoke(MessageContext messageContext) throws AxisFault {
         SOAPHeader header = messageContext.getEnvelope().getHeader();
diff --git a/axis2/src/main/java/org/apache/ode/axis2/hooks/SessionOutHandler.java b/axis2/src/main/java/org/apache/ode/axis2/hooks/SessionOutHandler.java
index 6b8f41e..f3496d0 100644
--- a/axis2/src/main/java/org/apache/ode/axis2/hooks/SessionOutHandler.java
+++ b/axis2/src/main/java/org/apache/ode/axis2/hooks/SessionOutHandler.java
@@ -27,8 +27,8 @@
 import org.apache.axis2.addressing.AddressingConstants;
 import org.apache.axis2.context.MessageContext;
 import org.apache.axis2.handlers.AbstractHandler;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.axis2.ODEService;
 import org.apache.ode.bpel.epr.EndpointFactory;
 import org.apache.ode.bpel.epr.MutableEndpoint;
@@ -43,7 +43,7 @@
 public class SessionOutHandler extends AbstractHandler {
 
     private static final long serialVersionUID = 1L;
-    private static final Log __log = LogFactory.getLog(SessionOutHandler.class);
+    private static final Logger __log = LoggerFactory.getLogger(SessionOutHandler.class);
 
 
     public InvocationResponse invoke(MessageContext messageContext) throws AxisFault {
diff --git a/axis2/src/main/java/org/apache/ode/axis2/httpbinding/HttpBindingValidator.java b/axis2/src/main/java/org/apache/ode/axis2/httpbinding/HttpBindingValidator.java
index b58714c..7dcc527 100644
--- a/axis2/src/main/java/org/apache/ode/axis2/httpbinding/HttpBindingValidator.java
+++ b/axis2/src/main/java/org/apache/ode/axis2/httpbinding/HttpBindingValidator.java
@@ -20,8 +20,8 @@
 package org.apache.ode.axis2.httpbinding;
 
 import org.apache.commons.httpclient.methods.PostMethod;
-import org.apache.commons.logging.LogFactory;
-import org.apache.commons.logging.Log;
+import org.slf4j.LoggerFactory;
+import org.slf4j.Logger;
 import org.apache.commons.lang.StringUtils;
 import org.apache.ode.utils.wsdl.WsdlUtils;
 
diff --git a/axis2/src/main/java/org/apache/ode/axis2/httpbinding/HttpExternalService.java b/axis2/src/main/java/org/apache/ode/axis2/httpbinding/HttpExternalService.java
index 6a28dc1..fcec4f5 100644
--- a/axis2/src/main/java/org/apache/ode/axis2/httpbinding/HttpExternalService.java
+++ b/axis2/src/main/java/org/apache/ode/axis2/httpbinding/HttpExternalService.java
@@ -24,8 +24,8 @@
 import org.apache.commons.httpclient.MultiThreadedHttpConnectionManager;
 import org.apache.commons.httpclient.URIException;
 import org.apache.commons.httpclient.params.HttpParams;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.axis2.ExternalService;
 import org.apache.ode.axis2.ODEService;
 import org.apache.ode.utils.Properties;
@@ -66,7 +66,7 @@
  */
 public class HttpExternalService implements ExternalService {
 
-    private static final Log log = LogFactory.getLog(ExternalService.class);
+    private static final Logger log = LoggerFactory.getLogger(ExternalService.class);
     private static final Messages msgs = Messages.getMessages(Messages.class);
 
     private MultiThreadedHttpConnectionManager connections;
@@ -395,4 +395,4 @@
             odeMex.replyWithFailure(MessageExchange.FailureType.OTHER, errmsg, HttpHelper.prepareDetailsElement(method));
         }
     }
-}
\ No newline at end of file
+}
diff --git a/axis2/src/main/java/org/apache/ode/axis2/httpbinding/HttpHelper.java b/axis2/src/main/java/org/apache/ode/axis2/httpbinding/HttpHelper.java
index a7a7d11..20101f7 100644
--- a/axis2/src/main/java/org/apache/ode/axis2/httpbinding/HttpHelper.java
+++ b/axis2/src/main/java/org/apache/ode/axis2/httpbinding/HttpHelper.java
@@ -33,8 +33,8 @@
 import org.apache.commons.httpclient.methods.StringRequestEntity;
 import org.apache.commons.httpclient.params.HttpParams;
 import org.apache.commons.httpclient.params.HostParams;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.commons.lang.StringUtils;
 import org.apache.ode.utils.Properties;
 import org.apache.ode.utils.DOMUtils;
@@ -50,7 +50,7 @@
 
 public class HttpHelper {
 
-    private static final Log log = LogFactory.getLog(HttpHelper.class);
+    private static final Logger log = LoggerFactory.getLogger(HttpHelper.class);
 
 
     public static void configure(HttpClient client, URI targetURI, Element authPart, HttpParams params) throws URIException {
@@ -269,7 +269,7 @@
             sb.append("HTTP Request Details: \n").append(m.getName()).append(" ").append(m.getURI());
         } catch (URIException e) {
             // not that important
-            if (log.isDebugEnabled()) log.debug(e);
+            if (log.isDebugEnabled()) log.debug("",e);
         }
         sb.append("\nRequest Headers:");
         Header[] headers = m.getRequestHeaders();
@@ -302,7 +302,7 @@
             sb.append("HTTP Response Details: \n").append(m.getName()).append(" ").append(m.getURI());
         } catch (URIException e) {
             // not that important
-            if (log.isDebugEnabled()) log.debug(e);
+            if (log.isDebugEnabled()) log.debug("",e);
         }
         sb.append("\nStatus-Line: ").append(m.getStatusLine());
         Header[] headers = m.getResponseHeaders();
@@ -316,7 +316,7 @@
                 sb.append("\nResponse Entity:\n").append(m.getResponseBodyAsString());
             }
         } catch (IOException e) {
-            log.error(e);
+            log.error("",e);
         }
         Header[] footers = m.getResponseFooters();
         if (footers.length != 0) sb.append("\nResponse Footers: ");
diff --git a/axis2/src/main/java/org/apache/ode/axis2/httpbinding/HttpMethodConverter.java b/axis2/src/main/java/org/apache/ode/axis2/httpbinding/HttpMethodConverter.java
index 2397666..35ac339 100644
--- a/axis2/src/main/java/org/apache/ode/axis2/httpbinding/HttpMethodConverter.java
+++ b/axis2/src/main/java/org/apache/ode/axis2/httpbinding/HttpMethodConverter.java
@@ -31,8 +31,8 @@
 import org.apache.commons.httpclient.params.HostParams;
 import org.apache.commons.httpclient.params.HttpParams;
 import org.apache.commons.lang.StringUtils;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.utils.Properties;
 import org.apache.ode.axis2.util.URLEncodedTransformer;
 import org.apache.ode.axis2.util.UrlReplacementTransformer;
@@ -74,7 +74,7 @@
 
 public class HttpMethodConverter {
 
-    private static final Log log = LogFactory.getLog(HttpMethodConverter.class);
+    private static final Logger log = LoggerFactory.getLogger(HttpMethodConverter.class);
 
     protected static final Messages msgs = Messages.getMessages(Messages.class);
     protected Definition definition;
diff --git a/axis2/src/main/java/org/apache/ode/axis2/service/DeploymentWebService.java b/axis2/src/main/java/org/apache/ode/axis2/service/DeploymentWebService.java
index 01e003b..1fbd1f2 100644
--- a/axis2/src/main/java/org/apache/ode/axis2/service/DeploymentWebService.java
+++ b/axis2/src/main/java/org/apache/ode/axis2/service/DeploymentWebService.java
@@ -34,8 +34,8 @@
 import org.apache.axis2.receivers.AbstractMessageReceiver;
 import org.apache.axis2.util.Utils;
 import org.apache.commons.lang.StringUtils;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.axis2.ODEServer;
 import org.apache.ode.axis2.OdeFault;
 import org.apache.ode.axis2.deploy.DeploymentPoller;
@@ -64,7 +64,7 @@
  */
 public class DeploymentWebService {
 
-    private static final Log __log = LogFactory.getLog(DeploymentWebService.class);
+    private static final Logger __log = LoggerFactory.getLogger(DeploymentWebService.class);
 
     private final OMNamespace _pmapi;
     private final OMNamespace _deployapi;
diff --git a/axis2/src/main/java/org/apache/ode/axis2/service/ManagementService.java b/axis2/src/main/java/org/apache/ode/axis2/service/ManagementService.java
index 3b4833f..8a88993 100644
--- a/axis2/src/main/java/org/apache/ode/axis2/service/ManagementService.java
+++ b/axis2/src/main/java/org/apache/ode/axis2/service/ManagementService.java
@@ -44,8 +44,8 @@
 import org.apache.axis2.engine.AxisEngine;
 import org.apache.axis2.receivers.AbstractMessageReceiver;
 import org.apache.axis2.util.MessageContextBuilder;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.axis2.hooks.ODEAxisService;
 import org.apache.ode.bpel.engine.ProcessAndInstanceManagementImpl;
 import org.apache.ode.bpel.iapi.BpelServer;
@@ -60,7 +60,7 @@
  */
 public class ManagementService {
 
-    private static final Log __log = LogFactory.getLog(ManagementService.class);
+    private static final Logger __log = LoggerFactory.getLogger(ManagementService.class);
 
     public static final QName PM_SERVICE_NAME = new QName("http://www.apache.org/ode/pmapi", "ProcessManagementService");
     public static final String PM_PORT_NAME = "ProcessManagementPort";
diff --git a/axis2/src/main/java/org/apache/ode/axis2/util/Axis2UriResolver.java b/axis2/src/main/java/org/apache/ode/axis2/util/Axis2UriResolver.java
index 3ba02db..23241ed 100644
--- a/axis2/src/main/java/org/apache/ode/axis2/util/Axis2UriResolver.java
+++ b/axis2/src/main/java/org/apache/ode/axis2/util/Axis2UriResolver.java
@@ -21,13 +21,13 @@
 import java.io.InputStream;
 import java.net.URI;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.axis2.hooks.ODEAxisService;
 import org.xml.sax.InputSource;
 
 public class Axis2UriResolver implements org.apache.ws.commons.schema.resolver.URIResolver {
-    private static final Log LOG = LogFactory.getLog(ODEAxisService.class);
+    private static final Logger LOG = LoggerFactory.getLogger(ODEAxisService.class);
 
     public InputSource resolveEntity(String targetNamespace, String schemaLocation, String baseUri) {
         if (LOG.isDebugEnabled()) {
diff --git a/axis2/src/main/java/org/apache/ode/axis2/util/Axis2WSDLLocator.java b/axis2/src/main/java/org/apache/ode/axis2/util/Axis2WSDLLocator.java
index 00ace7e..733552a 100644
--- a/axis2/src/main/java/org/apache/ode/axis2/util/Axis2WSDLLocator.java
+++ b/axis2/src/main/java/org/apache/ode/axis2/util/Axis2WSDLLocator.java
@@ -27,12 +27,12 @@
 
 import javax.wsdl.xml.WSDLLocator;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.xml.sax.InputSource;
 
 public class Axis2WSDLLocator implements WSDLLocator {
-    private static final Log LOG = LogFactory.getLog(Axis2WSDLLocator.class);
+    private static final Logger LOG = LoggerFactory.getLogger(Axis2WSDLLocator.class);
     private URI _baseUri;
     private String _latest;
 
diff --git a/axis2/src/main/java/org/apache/ode/axis2/util/AxisUtils.java b/axis2/src/main/java/org/apache/ode/axis2/util/AxisUtils.java
index d6a85de..8e6b149 100644
--- a/axis2/src/main/java/org/apache/ode/axis2/util/AxisUtils.java
+++ b/axis2/src/main/java/org/apache/ode/axis2/util/AxisUtils.java
@@ -19,8 +19,8 @@
 
 package org.apache.ode.axis2.util;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.axis2.deployment.ServiceBuilder;
 import org.apache.axis2.context.ConfigurationContext;
 import org.apache.axis2.description.AxisService;
@@ -46,7 +46,7 @@
  */
 public class AxisUtils {
 
-    private static final Log log = LogFactory.getLog(AxisUtils.class);
+    private static final Logger log = LoggerFactory.getLogger(AxisUtils.class);
 
     public static void configureService(AxisService axisService, URL service_file) throws IOException, XMLStreamException, AxisFault {
         configureService(new ConfigurationContext(axisService.getAxisConfiguration()), axisService, service_file);
diff --git a/axis2/src/main/java/org/apache/ode/axis2/util/ClusterUrlTransformer.java b/axis2/src/main/java/org/apache/ode/axis2/util/ClusterUrlTransformer.java
index 31f5f44..beaba72 100644
--- a/axis2/src/main/java/org/apache/ode/axis2/util/ClusterUrlTransformer.java
+++ b/axis2/src/main/java/org/apache/ode/axis2/util/ClusterUrlTransformer.java
@@ -21,11 +21,11 @@
 
 import java.util.List;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class ClusterUrlTransformer {
-    private static final Log __log = LogFactory.getLog(ClusterUrlTransformer.class);
+    private static final Logger __log = LoggerFactory.getLogger(ClusterUrlTransformer.class);
 
     private final List<String> targets;
     private final String base;
diff --git a/axis2/src/main/java/org/apache/ode/axis2/util/SoapMessageConverter.java b/axis2/src/main/java/org/apache/ode/axis2/util/SoapMessageConverter.java
index b13980d..38cd9a5 100644
--- a/axis2/src/main/java/org/apache/ode/axis2/util/SoapMessageConverter.java
+++ b/axis2/src/main/java/org/apache/ode/axis2/util/SoapMessageConverter.java
@@ -58,8 +58,8 @@
 import org.apache.axis2.AxisFault;
 import org.apache.axis2.context.MessageContext;
 import org.apache.axis2.namespace.Constants;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.axis2.OdeFault;
 import org.apache.ode.il.OMUtils;
 import org.apache.ode.utils.DOMUtils;
@@ -78,7 +78,7 @@
 
     private static final Messages __msgs = Messages.getMessages(Messages.class);
 
-    private static final Log __log = LogFactory.getLog(SoapMessageConverter.class);
+    private static final Logger __log = LoggerFactory.getLogger(SoapMessageConverter.class);
 
     SOAPFactory _soapFactory;
 
@@ -156,7 +156,7 @@
         BindingInput bi = bop.getBindingInput();
         if (bi == null)
             //throw new OdeFault(__msgs.msgBindingInputNotFound(_serviceName, _portName, op.getName()));
-            __log.warn(__msgs.msgBindingInputNotFound(_serviceName, _portName, op.getName()));
+            __log.warn("",__msgs.msgBindingInputNotFound(_serviceName, _portName, op.getName()));
 
         SOAPEnvelope soapEnv = msgCtx.getEnvelope();
         if (soapEnv == null) {
diff --git a/axis2/src/main/java/org/apache/ode/axis2/util/URLEncodedTransformer.java b/axis2/src/main/java/org/apache/ode/axis2/util/URLEncodedTransformer.java
index 985e324..087a446 100644
--- a/axis2/src/main/java/org/apache/ode/axis2/util/URLEncodedTransformer.java
+++ b/axis2/src/main/java/org/apache/ode/axis2/util/URLEncodedTransformer.java
@@ -21,8 +21,8 @@
 
 import org.apache.commons.httpclient.NameValuePair;
 import org.apache.commons.httpclient.util.EncodingUtil;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.utils.DOMUtils;
 import org.apache.ode.axis2.httpbinding.Messages;
 import org.w3c.dom.Element;
@@ -39,7 +39,7 @@
 public class URLEncodedTransformer {
 
 
-    private static final Log log = LogFactory.getLog(URLEncodedTransformer.class);
+    private static final Logger log = LoggerFactory.getLogger(URLEncodedTransformer.class);
 
     /**
      * @param values - a map<String, Element>, the key is a part name (without curly braces), the value the replacement value for the part name. If the value is not a simple type, it will be skipped.
diff --git a/axis2/src/main/java/org/apache/ode/axis2/util/UrlReplacementTransformer.java b/axis2/src/main/java/org/apache/ode/axis2/util/UrlReplacementTransformer.java
index c45ac2f..3408a3f 100644
--- a/axis2/src/main/java/org/apache/ode/axis2/util/UrlReplacementTransformer.java
+++ b/axis2/src/main/java/org/apache/ode/axis2/util/UrlReplacementTransformer.java
@@ -21,8 +21,8 @@
 
 import org.apache.commons.httpclient.util.URIUtil;
 import org.apache.commons.httpclient.URIException;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.utils.DOMUtils;
 import org.w3c.dom.Element;
 
@@ -45,7 +45,7 @@
  */
 public class UrlReplacementTransformer {
 
-    private static final Log log = LogFactory.getLog(UrlReplacementTransformer.class);
+    private static final Logger log = LoggerFactory.getLogger(UrlReplacementTransformer.class);
 
     private static final org.apache.ode.axis2.httpbinding.Messages httpMsgs = org.apache.ode.axis2.httpbinding.Messages.getMessages(org.apache.ode.axis2.httpbinding.Messages.class);
 
diff --git a/axis2/src/test/java/org/apache/ode/axis2/httpbinding/HttpBindingValidatorTest.java b/axis2/src/test/java/org/apache/ode/axis2/httpbinding/HttpBindingValidatorTest.java
index 9a777f8..5efb944 100644
--- a/axis2/src/test/java/org/apache/ode/axis2/httpbinding/HttpBindingValidatorTest.java
+++ b/axis2/src/test/java/org/apache/ode/axis2/httpbinding/HttpBindingValidatorTest.java
@@ -32,8 +32,8 @@
 
 import org.apache.ode.utils.DOMUtils;
 import org.apache.ode.axis2.httpbinding.HttpBindingValidator;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.w3c.dom.Element;
 
 /**
@@ -41,7 +41,7 @@
  */
 public class HttpBindingValidatorTest extends TestCase {
 
-    private static final Log log = LogFactory.getLog(HttpBindingValidatorTest.class);
+    private static final Logger log = LoggerFactory.getLogger(HttpBindingValidatorTest.class);
 
     private String[] resources = new String[]{"/http-binding-validator.wsdl", "/http-binding-validator-ext.wsdl"};
     private Definition[] definitions;
diff --git a/bpel-api/src/main/java/org/apache/ode/bpel/common/InstanceFilter.java b/bpel-api/src/main/java/org/apache/ode/bpel/common/InstanceFilter.java
index 04161f3..d74e78a 100644
--- a/bpel-api/src/main/java/org/apache/ode/bpel/common/InstanceFilter.java
+++ b/bpel-api/src/main/java/org/apache/ode/bpel/common/InstanceFilter.java
@@ -18,8 +18,8 @@
  */
 package org.apache.ode.bpel.common;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.pmapi.InvalidRequestException;
 import org.apache.ode.utils.ISO8601DateParser;
 import org.apache.ode.utils.RelativeDateParser;
@@ -40,7 +40,7 @@
  * language.
  */
 public class InstanceFilter extends Filter<InstanceFilter.Criteria> implements Serializable {
-    protected static Log LOG = LogFactory.getLog(InstanceFilter.class);
+    protected static Logger LOG = LoggerFactory.getLogger(InstanceFilter.class);
 
     private static final long serialVersionUID = 9999;
 
@@ -382,4 +382,4 @@
         }
         return list;
     }
-}
\ No newline at end of file
+}
diff --git a/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/AssignGenerator.java b/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/AssignGenerator.java
index 983b368..a2b5f25 100644
--- a/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/AssignGenerator.java
+++ b/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/AssignGenerator.java
@@ -18,8 +18,8 @@
  */
 package org.apache.ode.bpel.compiler;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.compiler.api.CompilationException;
 import org.apache.ode.bpel.compiler.bom.Activity;
 import org.apache.ode.bpel.compiler.bom.AssignActivity;
@@ -50,7 +50,7 @@
  * @author Maciej Szefler ( m s z e f l e r @ g m a i l . c o m )
  */
 class AssignGenerator extends DefaultActivityGenerator {
-    private static final Log __log = LogFactory.getLog(AssignGenerator.class);
+    private static final Logger __log = LoggerFactory.getLogger(AssignGenerator.class);
 
     private static final AssignGeneratorMessages __cmsgs =
         MessageBundle.getMessages(AssignGeneratorMessages.class);
diff --git a/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/BpelC.java b/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/BpelC.java
index e959d9b..ff1bd34 100644
--- a/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/BpelC.java
+++ b/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/BpelC.java
@@ -30,8 +30,8 @@
 
 import javax.xml.namespace.QName;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.compiler.api.CompilationException;
 import org.apache.ode.bpel.compiler.api.CompilationMessage;
 import org.apache.ode.bpel.compiler.api.CompileListener;
@@ -56,7 +56,7 @@
  * </p>
 s */
 public class BpelC {
-    private static final Log __log = LogFactory.getLog(BpelC.class);
+    private static final Logger __log = LoggerFactory.getLogger(BpelC.class);
     private static final CommonCompilationMessages __cmsgs =
             MessageBundle.getMessages(CommonCompilationMessages.class);
 
@@ -500,7 +500,7 @@
 
 
     /**
-     * Log a compilation message, both to the log, and to the listener (if any).
+     * Logger a compilation message, both to the log, and to the listener (if any).
      * @param cmsg
      */
     private void logCompilationMessage(CompilationMessage cmsg) {
diff --git a/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/BpelCompiler.java b/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/BpelCompiler.java
index f24bf2f..00d8ccd 100644
--- a/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/BpelCompiler.java
+++ b/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/BpelCompiler.java
@@ -44,8 +44,8 @@
 import javax.xml.namespace.QName;
 import javax.xml.transform.Source;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.compiler.api.CompilationException;
 import org.apache.ode.bpel.compiler.api.CompilationMessage;
 import org.apache.ode.bpel.compiler.api.CompileListener;
@@ -129,7 +129,7 @@
  */
 public abstract class BpelCompiler implements CompilerContext {
     /** Class-severity logger. */
-    protected static final Log __log = LogFactory.getLog(BpelCompiler.class);
+    protected static final Logger __log = LoggerFactory.getLogger(BpelCompiler.class);
 
     /** Standardized compiler messages. */
     private static final CommonCompilationMessages __cmsgs = MessageBundle.getMessages(CommonCompilationMessages.class);
diff --git a/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/DefaultResourceFinder.java b/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/DefaultResourceFinder.java
index 861591f..7ffcb91 100644
--- a/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/DefaultResourceFinder.java
+++ b/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/DefaultResourceFinder.java
@@ -25,8 +25,8 @@
 import java.net.MalformedURLException;
 import java.net.URI;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Basic implementation of the {@link ResourceFinder} interface. Resolves
@@ -36,7 +36,7 @@
  *
  */
 public class DefaultResourceFinder implements ResourceFinder {
-    private static final Log __log = LogFactory.getLog(DefaultResourceFinder.class);
+    private static final Logger __log = LoggerFactory.getLogger(DefaultResourceFinder.class);
 
     private File _relativeDir;
     private File _absoluteDir;
@@ -113,7 +113,7 @@
         // return the absolute URI.
         URI relative = _relativeDir.toURI().relativize(uri);
         if (relative.isAbsolute() && !(relative.getScheme().equals("urn"))) {
-           __log.fatal("openResource: invalid scheme (should be urn:)  " + uri);
+           __log.error("openResource: invalid scheme (should be urn:)  " + uri);
            return null;
         }
 
diff --git a/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/ExpressionValidatorFactory.java b/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/ExpressionValidatorFactory.java
index 3e27ce3..00fc28f 100644
--- a/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/ExpressionValidatorFactory.java
+++ b/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/ExpressionValidatorFactory.java
@@ -20,8 +20,8 @@
 
 import java.util.Properties;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.compiler.api.CompilationException;
 import org.apache.ode.bpel.compiler.api.CompilerContext;
 import org.apache.ode.bpel.compiler.api.ExpressionValidator;
@@ -30,7 +30,7 @@
 import org.apache.ode.bpel.obj.OVarType;
 
 public class ExpressionValidatorFactory {
-    private static final Log __log = LogFactory.getLog(ExpressionValidatorFactory.class);
+    private static final Logger __log = LoggerFactory.getLogger(ExpressionValidatorFactory.class);
     private ExpressionValidator _validator = new EmptyValidator();
 
     public ExpressionValidatorFactory(Properties config) {
diff --git a/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/ForEachGenerator.java b/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/ForEachGenerator.java
index d0a4f8a..4f558f0 100644
--- a/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/ForEachGenerator.java
+++ b/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/ForEachGenerator.java
@@ -22,8 +22,8 @@
 import javax.xml.XMLConstants;
 import javax.xml.namespace.QName;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.compiler.api.CompilationException;
 import org.apache.ode.bpel.compiler.bom.Activity;
 import org.apache.ode.bpel.compiler.bom.ForEachActivity;
@@ -40,7 +40,7 @@
  */
 public class ForEachGenerator extends DefaultActivityGenerator {
 
-    private static final Log __log = LogFactory.getLog(AssignGenerator.class);
+    private static final Logger __log = LoggerFactory.getLogger(AssignGenerator.class);
     private static final ForEachGeneratorMessages __cmsgs = MessageBundle.getMessages(ForEachGeneratorMessages.class);
 
     public OActivity newInstance(Activity src) {
diff --git a/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/LocalEntityResolver.java b/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/LocalEntityResolver.java
index ca1e6e3..a8c4a4f 100644
--- a/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/LocalEntityResolver.java
+++ b/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/LocalEntityResolver.java
@@ -23,8 +23,8 @@
 import java.net.URL;
 import java.util.HashMap;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.xml.sax.EntityResolver;
 import org.xml.sax.InputSource;
 import org.xml.sax.SAXException;
@@ -33,7 +33,7 @@
  * Resolver implementation that restricts us to a known set of resources.
  */
 class LocalEntityResolver implements EntityResolver {
-  private static final Log __log = LogFactory.getLog(LocalEntityResolver.class);
+  private static final Logger __log = LoggerFactory.getLogger(LocalEntityResolver.class);
 
   private final HashMap<String, URL> _mappings = new HashMap<String,URL>();
 
diff --git a/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/WSDLLocatorImpl.java b/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/WSDLLocatorImpl.java
index 766b9e3..366669b 100644
--- a/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/WSDLLocatorImpl.java
+++ b/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/WSDLLocatorImpl.java
@@ -18,8 +18,8 @@
  */
 package org.apache.ode.bpel.compiler;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.xml.sax.InputSource;
 
 import javax.wsdl.xml.WSDLLocator;
@@ -30,7 +30,7 @@
 
 public class WSDLLocatorImpl implements WSDLLocator {
 
-    private static final Log __log = LogFactory.getLog(WSDLLocatorImpl.class);
+    private static final Logger __log = LoggerFactory.getLogger(WSDLLocatorImpl.class);
 
     private ResourceFinder _resourceFinder;
     private URI _base;
diff --git a/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/WSDLRegistry.java b/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/WSDLRegistry.java
index e49e0ca..9fd8a2e 100644
--- a/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/WSDLRegistry.java
+++ b/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/WSDLRegistry.java
@@ -40,8 +40,8 @@
 import javax.xml.transform.dom.DOMSource;
 import javax.xml.transform.stream.StreamSource;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.compiler.api.CompilationException;
 import org.apache.ode.bpel.compiler.api.CompilerContext;
 import org.apache.ode.bpel.compiler.bom.PartnerLinkType;
@@ -64,7 +64,7 @@
  * A parsed collection of WSDL definitions, including BPEL-specific extensions.
  */
 class WSDLRegistry {
-    private static final Log __log = LogFactory.getLog(WSDLRegistry.class);
+    private static final Logger __log = LoggerFactory.getLogger(WSDLRegistry.class);
 
     private static final CommonCompilationMessages __cmsgs =
             MessageBundle.getMessages(CommonCompilationMessages.class);
diff --git a/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/WsdlFinderXMLEntityResolver.java b/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/WsdlFinderXMLEntityResolver.java
index b02de5f..e27d44b 100644
--- a/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/WsdlFinderXMLEntityResolver.java
+++ b/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/WsdlFinderXMLEntityResolver.java
@@ -26,8 +26,8 @@
 import java.util.HashMap;
 import java.util.Map;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.xerces.xni.XMLResourceIdentifier;
 import org.apache.xerces.xni.XNIException;
 import org.apache.xerces.xni.parser.XMLEntityResolver;
@@ -43,8 +43,7 @@
  */
 public class WsdlFinderXMLEntityResolver implements XMLEntityResolver {
 
-    private static final Log __log = LogFactory
-            .getLog(WsdlFinderXMLEntityResolver.class);
+    private static final Logger __log = LoggerFactory.getLogger(WsdlFinderXMLEntityResolver.class);
 
     /**
      * Flag indicating whether the resolver should fail with an exception if the
diff --git a/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/bom/BpelObjectFactory.java b/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/bom/BpelObjectFactory.java
index 02cde22..7ab2acb 100644
--- a/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/bom/BpelObjectFactory.java
+++ b/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/bom/BpelObjectFactory.java
@@ -18,8 +18,8 @@
  */
 package org.apache.ode.bpel.compiler.bom;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.compiler.BpelC;
 import org.apache.ode.bpel.compiler.bom.IfActivity.Case;
 import org.apache.ode.utils.DOMUtils;
@@ -43,7 +43,7 @@
 
 public class BpelObjectFactory {
 
-    private static final Log __log = LogFactory.getLog(BpelObjectFactory.class);
+    private static final Logger __log = LoggerFactory.getLogger(BpelObjectFactory.class);
     private static BpelObjectFactory __instance = new BpelObjectFactory();
 
     public static final String WSDL = "http://schemas.xmlsoap.org/wsdl/";
@@ -290,7 +290,7 @@
     }
 
     public static class BOMSAXErrorHandler implements ErrorHandler {
-        private static final Log __log = LogFactory.getLog(BOMSAXErrorHandler.class);
+        private static final Logger __log = LoggerFactory.getLogger(BOMSAXErrorHandler.class);
         
     	private boolean ok = true;
     	private boolean strict = false;
@@ -316,7 +316,7 @@
 		public void fatalError(SAXParseException exception) throws SAXException {
 			ok = false;
 			if (strict) {
-			    __log.fatal(formatException(exception));    
+			    __log.error(formatException(exception));    
 			} else {
 			    __log.warn(formatException(exception));
 			}
diff --git a/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/bom/LocalEntityResolver.java b/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/bom/LocalEntityResolver.java
index 149dbb4..f14a807 100644
--- a/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/bom/LocalEntityResolver.java
+++ b/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/bom/LocalEntityResolver.java
@@ -19,8 +19,8 @@
 
 package org.apache.ode.bpel.compiler.bom;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.xml.sax.EntityResolver;
 import org.xml.sax.InputSource;
 import org.xml.sax.SAXException;
@@ -33,7 +33,7 @@
  * Resolver implementation that restricts us to a known set of resources.
  */
 class LocalEntityResolver implements EntityResolver {
-  private static final Log __log = LogFactory.getLog(LocalEntityResolver.class);
+  private static final Logger __log = LoggerFactory.getLogger(LocalEntityResolver.class);
 
   private final HashMap<String, URL> _mappings = new HashMap<String,URL>();
 
diff --git a/bpel-compiler/src/main/java/org/apache/ode/bpel/elang/xpath10/compiler/XslCompilationErrorListener.java b/bpel-compiler/src/main/java/org/apache/ode/bpel/elang/xpath10/compiler/XslCompilationErrorListener.java
index 47cc81d..15113ac 100644
--- a/bpel-compiler/src/main/java/org/apache/ode/bpel/elang/xpath10/compiler/XslCompilationErrorListener.java
+++ b/bpel-compiler/src/main/java/org/apache/ode/bpel/elang/xpath10/compiler/XslCompilationErrorListener.java
@@ -19,8 +19,8 @@
 
 package org.apache.ode.bpel.elang.xpath10.compiler;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.compiler.api.CompilationException;
 import org.apache.ode.bpel.compiler.api.CompilationMessage;
 import org.apache.ode.bpel.compiler.api.CompilerContext;
@@ -37,7 +37,7 @@
  */
 public class XslCompilationErrorListener implements ErrorListener {
 
-  private static final Log __log = LogFactory.getLog(XslCompilationErrorListener.class);
+  private static final Logger __log = LoggerFactory.getLogger(XslCompilationErrorListener.class);
   private CompilerContext _cc;
 
   public XslCompilationErrorListener(CompilerContext cc) {
@@ -46,23 +46,23 @@
 
   public void warning(TransformerException exception) throws TransformerException {
     if (__log.isWarnEnabled()) {
-      __log.warn(exception);
+      __log.warn("",exception);
     }
     recover(CompilationMessage.WARN, exception);
   }
 
   public void error(TransformerException exception) throws TransformerException {
     if (__log.isErrorEnabled()) {
-      __log.error(exception);
+      __log.error("",exception);
     }
     recover(CompilationMessage.ERROR, exception);
     throw exception;
   }
 
   public void fatalError(TransformerException exception) throws TransformerException {
-    if (__log.isFatalEnabled()) {
-      __log.fatal(exception);
-    }
+    
+    __log.error("",exception);
+    
     recover(CompilationMessage.ERROR, exception);
     throw exception;
   }
diff --git a/bpel-compiler/src/main/java/org/apache/ode/bpel/elang/xpath20/compiler/XPath20ExpressionCompilerImpl.java b/bpel-compiler/src/main/java/org/apache/ode/bpel/elang/xpath20/compiler/XPath20ExpressionCompilerImpl.java
index ac0cf58..8ccc2d9 100644
--- a/bpel-compiler/src/main/java/org/apache/ode/bpel/elang/xpath20/compiler/XPath20ExpressionCompilerImpl.java
+++ b/bpel-compiler/src/main/java/org/apache/ode/bpel/elang/xpath20/compiler/XPath20ExpressionCompilerImpl.java
@@ -40,8 +40,8 @@
 import net.sf.saxon.xpath.XPathEvaluator;
 import net.sf.saxon.xpath.XPathFactoryImpl;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.compiler.api.CompilationException;
 import org.apache.ode.bpel.compiler.api.CompilerContext;
 import org.apache.ode.bpel.compiler.api.ExpressionCompiler;
@@ -62,7 +62,7 @@
  */
 public class XPath20ExpressionCompilerImpl implements ExpressionCompiler {
 
-    protected static final Log __log = LogFactory.getLog(XPath20ExpressionCompilerBPEL20.class);
+    protected static final Logger __log = LoggerFactory.getLogger(XPath20ExpressionCompilerBPEL20.class);
 
     protected String _bpelNS;
     protected QName _qnLinkStatus;
@@ -175,7 +175,7 @@
                 }
             }
         } catch (XPathExpressionException e) {
-            __log.debug(e);
+            __log.debug("",e);
             __log.info("Couldn't validate properly expression " + xpathStr);
         } catch (WrappedResolverException wre) {
             if (wre._compilationMsg != null)
diff --git a/bpel-compiler/src/main/java/org/apache/ode/bpel/elang/xquery10/compiler/XQuery10ExpressionCompilerImpl.java b/bpel-compiler/src/main/java/org/apache/ode/bpel/elang/xquery10/compiler/XQuery10ExpressionCompilerImpl.java
index aeaf585..995a8c3 100644
--- a/bpel-compiler/src/main/java/org/apache/ode/bpel/elang/xquery10/compiler/XQuery10ExpressionCompilerImpl.java
+++ b/bpel-compiler/src/main/java/org/apache/ode/bpel/elang/xquery10/compiler/XQuery10ExpressionCompilerImpl.java
@@ -45,8 +45,8 @@
 import net.sf.saxon.xqj.SaxonXQConnection;
 import net.sf.saxon.xqj.SaxonXQDataSource;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.compiler.api.CompilationException;
 import org.apache.ode.bpel.compiler.api.CompilerContext;
 import org.apache.ode.bpel.compiler.api.ExpressionCompiler;
@@ -81,7 +81,7 @@
  */
 public class XQuery10ExpressionCompilerImpl implements ExpressionCompiler {
 
-    protected static final Log __log = LogFactory.getLog(XQuery10ExpressionCompilerImpl.class);
+    protected static final Logger __log = LoggerFactory.getLogger(XQuery10ExpressionCompilerImpl.class);
 
     protected String _bpelNS;
     protected QName _qnLinkStatus;
@@ -269,7 +269,7 @@
                 }
             }
         } catch (XQException xqe) {
-            __log.debug(xqe);
+            __log.debug("",xqe);
             __log.info("Couldn't validate properly expression " + xqueryStr);
             throw new CompilationException(__msgs.errXQuery10Syntax(xqueryStr, "Couldn't validate XQuery expression"));
         } catch (WrappedResolverException wre) {
diff --git a/bpel-compiler/src/test/java/org/apache/ode/bpel/compiler_2_0/AbstractCompileTestCase.java b/bpel-compiler/src/test/java/org/apache/ode/bpel/compiler_2_0/AbstractCompileTestCase.java
index 72a7585..4bc8c0e 100644
--- a/bpel-compiler/src/test/java/org/apache/ode/bpel/compiler_2_0/AbstractCompileTestCase.java
+++ b/bpel-compiler/src/test/java/org/apache/ode/bpel/compiler_2_0/AbstractCompileTestCase.java
@@ -22,8 +22,8 @@
 import java.io.ByteArrayOutputStream;
 import java.util.ArrayList;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.compiler.BpelC;
 import org.apache.ode.bpel.compiler.api.CompilationMessage;
 import org.apache.ode.bpel.compiler.api.CompileListener;
@@ -33,7 +33,7 @@
 
 public abstract class AbstractCompileTestCase implements CompileListener {
 
-    protected final Log __log = LogFactory.getLog(getClass());
+    protected final Logger __log = LoggerFactory.getLogger(getClass());
     protected BpelC _compiler;
     protected ArrayList<CompilationMessage> _errors = new ArrayList<CompilationMessage>();
 
diff --git a/bpel-compiler/src/test/java/org/apache/ode/bpel/compiler_2_0/MigrationTest.java b/bpel-compiler/src/test/java/org/apache/ode/bpel/compiler_2_0/MigrationTest.java
index 970a351..1dcfd31 100644
--- a/bpel-compiler/src/test/java/org/apache/ode/bpel/compiler_2_0/MigrationTest.java
+++ b/bpel-compiler/src/test/java/org/apache/ode/bpel/compiler_2_0/MigrationTest.java
@@ -6,8 +6,8 @@
 import java.net.URI;
 import java.net.URL;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.obj.OProcess;
 import org.apache.ode.bpel.obj.migrate.DeepEqualityHelper;
 import org.apache.ode.bpel.obj.migrate.DomElementComparator;
@@ -19,7 +19,7 @@
 import org.junit.Test;
 
 public class MigrationTest extends GoodCompileTest{
-    private static final Log __log = LogFactory.getLog(MigrationTest.class);
+    private static final Logger __log = LoggerFactory.getLogger(MigrationTest.class);
 
     /**
      * compare compiled OProcess with migrated ones.
diff --git a/bpel-compiler/src/test/java/org/apache/ode/bpel/compiler_2_0/XslTest.java b/bpel-compiler/src/test/java/org/apache/ode/bpel/compiler_2_0/XslTest.java
index 963a0e5..efbf6c9 100644
--- a/bpel-compiler/src/test/java/org/apache/ode/bpel/compiler_2_0/XslTest.java
+++ b/bpel-compiler/src/test/java/org/apache/ode/bpel/compiler_2_0/XslTest.java
@@ -22,8 +22,8 @@
 import java.net.URI;
 import java.net.URL;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.compiler.BpelCompiler20;
 import org.apache.ode.bpel.compiler.DefaultResourceFinder;
 import org.apache.ode.bpel.compiler.ResourceFinder;
@@ -42,7 +42,7 @@
 
 public class XslTest {
 
-    private final Log __log = LogFactory.getLog(getClass());
+    private final Logger __log = LoggerFactory.getLogger(getClass());
     private BpelCompiler20 _compiler;
     private ResourceFinder _resfinder;
 
diff --git a/bpel-compiler/src/test/resources/log4j2.xml b/bpel-compiler/src/test/resources/log4j2.xml
new file mode 100644
index 0000000..9f6bc53
--- /dev/null
+++ b/bpel-compiler/src/test/resources/log4j2.xml
@@ -0,0 +1,37 @@
+<Configuration>
+    <Appenders>
+        <File name="FILE" fileName="target/test/test.log" append="false">
+            <PatternLayout pattern="%d{ABSOLUTE} %-5p [%c{1}] %m%n"/>
+        </File>
+        <Console name="STDOUT" target="SYSTEM_OUT">
+            <PatternLayout pattern="%d{ABSOLUTE} %-5p [%c{1}] %m%n"/>
+        </Console>
+        <Async name="Async">
+            <AppenderRef ref="FILE"/>
+            <AppenderRef ref="STDOUT"/>
+        </Async>
+    </Appenders>
+
+    <Loggers>
+        <Logger name="org.apache.ode" level="info" additivity="false">
+            <AppenderRef ref="FILE"/>
+        </Logger>
+        <Logger name="org.apache.axis2" level="info" additivity="false">
+            <AppenderRef ref="FILE"/>
+        </Logger>
+       <Logger name="org.hibernate" level="warn" additivity="false">
+            <AppenderRef ref="FILE"/>
+        </Logger>
+        <Logger name="org.apache.openjpa" level="warn" additivity="false">
+            <AppenderRef ref="FILE"/>
+        </Logger>
+        <Logger name="org.springframework" level="error" additivity="false">
+            <AppenderRef ref="FILE"/>
+        </Logger>
+
+        <Root level="info">
+            <AppenderRef ref="Async"/>
+        </Root>
+    </Loggers>
+
+</Configuration>
diff --git a/bpel-epr/src/main/java/org/apache/ode/bpel/common/evt/DebugBpelEventListener.java b/bpel-epr/src/main/java/org/apache/ode/bpel/common/evt/DebugBpelEventListener.java
index 93f2cff..1417624 100644
--- a/bpel-epr/src/main/java/org/apache/ode/bpel/common/evt/DebugBpelEventListener.java
+++ b/bpel-epr/src/main/java/org/apache/ode/bpel/common/evt/DebugBpelEventListener.java
@@ -21,8 +21,8 @@
 import java.util.Properties;
 
 import org.apache.commons.lang.BooleanUtils;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.evt.BpelEvent;
 import org.apache.ode.bpel.iapi.BpelEventListener;
 
@@ -40,7 +40,7 @@
  * @author Tammo van Lessen (University of Stuttgart)
  */
 public class DebugBpelEventListener implements BpelEventListener {
-    private static final Log __log = LogFactory.getLog(BpelEventListener.class);
+    private static final Logger __log = LoggerFactory.getLogger(BpelEventListener.class);
 
     private static final String SYSOUT_KEY = "debugeventlistener.dumpToStdOut";
     private boolean _dumpToStdOut = false;
diff --git a/bpel-epr/src/main/java/org/apache/ode/bpel/epr/EndpointFactory.java b/bpel-epr/src/main/java/org/apache/ode/bpel/epr/EndpointFactory.java
index 1409d9e..7d9768e 100644
--- a/bpel-epr/src/main/java/org/apache/ode/bpel/epr/EndpointFactory.java
+++ b/bpel-epr/src/main/java/org/apache/ode/bpel/epr/EndpointFactory.java
@@ -24,8 +24,8 @@
 
 import javax.xml.namespace.QName;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.utils.DOMUtils;
 import org.apache.ode.utils.Namespaces;
 import org.w3c.dom.Element;
@@ -36,7 +36,7 @@
  */
 public class EndpointFactory {
 
-    private static final Log __log = LogFactory.getLog(EndpointFactory.class);
+    private static final Logger __log = LoggerFactory.getLogger(EndpointFactory.class);
 
     private static QName WSDL20_ELMT_QNAME = new QName(Namespaces.WSDL_20, "service");
 
diff --git a/bpel-epr/src/main/java/org/apache/ode/bpel/epr/WSAEndpoint.java b/bpel-epr/src/main/java/org/apache/ode/bpel/epr/WSAEndpoint.java
index 9a50bdf..47ee2fa 100644
--- a/bpel-epr/src/main/java/org/apache/ode/bpel/epr/WSAEndpoint.java
+++ b/bpel-epr/src/main/java/org/apache/ode/bpel/epr/WSAEndpoint.java
@@ -19,8 +19,8 @@
 
 package org.apache.ode.bpel.epr;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.utils.DOMUtils;
 import org.apache.ode.utils.Namespaces;
 import org.w3c.dom.Document;
@@ -37,7 +37,7 @@
  */
 public class WSAEndpoint implements MutableEndpoint {
 
-    private static final Log __log = LogFactory.getLog(WSAEndpoint.class);
+    private static final Logger __log = LoggerFactory.getLogger(WSAEndpoint.class);
 
     private Element _eprElmt;
 
diff --git a/bpel-epr/src/main/java/org/apache/ode/il/DynamicService.java b/bpel-epr/src/main/java/org/apache/ode/il/DynamicService.java
index fee961c..feb6ff0 100644
--- a/bpel-epr/src/main/java/org/apache/ode/il/DynamicService.java
+++ b/bpel-epr/src/main/java/org/apache/ode/il/DynamicService.java
@@ -36,8 +36,8 @@
 import org.apache.axiom.om.OMNamespace;
 import org.apache.axiom.om.impl.builder.StAXOMBuilder;
 import org.apache.axiom.om.impl.dom.NamespaceImpl;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.pmapi.ProcessInfoCustomizer;
 import org.apache.xmlbeans.XmlObject;
 import org.w3c.dom.Node;
@@ -47,7 +47,7 @@
  * invocation based on top-level element name (e.g. method name) and sub-elements (e.g. parameters).
  */
 public class DynamicService<T> {
-    private final Log __log = LogFactory.getLog(getClass());
+    private final Logger __log = LoggerFactory.getLogger(getClass());
 
     static final OMFactory OM = OMAbstractFactory.getOMFactory();
 
diff --git a/bpel-epr/src/main/java/org/apache/ode/il/EmbeddedGeronimoFactory.java b/bpel-epr/src/main/java/org/apache/ode/il/EmbeddedGeronimoFactory.java
index b1d4739..304897b 100644
--- a/bpel-epr/src/main/java/org/apache/ode/il/EmbeddedGeronimoFactory.java
+++ b/bpel-epr/src/main/java/org/apache/ode/il/EmbeddedGeronimoFactory.java
@@ -19,14 +19,14 @@
 
 package org.apache.ode.il;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.geronimo.transaction.manager.GeronimoTransactionManager;
 
 import javax.transaction.TransactionManager;
 
 public class EmbeddedGeronimoFactory {
-    private static final Log LOG = LogFactory.getLog(EmbeddedGeronimoFactory.class);
+    private static final Logger LOG = LoggerFactory.getLogger(EmbeddedGeronimoFactory.class);
 
     /* Public no-arg contructor is required */
     public EmbeddedGeronimoFactory() {
diff --git a/bpel-epr/src/main/java/org/apache/ode/il/MockScheduler.java b/bpel-epr/src/main/java/org/apache/ode/il/MockScheduler.java
index ec90ebc..18ae1ec 100644
--- a/bpel-epr/src/main/java/org/apache/ode/il/MockScheduler.java
+++ b/bpel-epr/src/main/java/org/apache/ode/il/MockScheduler.java
@@ -36,8 +36,8 @@
 import javax.transaction.SystemException;
 import javax.transaction.TransactionManager;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.iapi.ContextException;
 import org.apache.ode.bpel.iapi.Scheduler;
 
@@ -45,7 +45,7 @@
  * @author Matthieu Riou <mriou at apache dot org>
  */
 public class MockScheduler implements Scheduler {
-    private static final Log __log = LogFactory.getLog(MockScheduler.class);
+    private static final Logger __log = LoggerFactory.getLogger(MockScheduler.class);
 
     private JobProcessor _processor;
     private ExecutorService _executorSvc = Executors.newCachedThreadPool();
diff --git a/bpel-epr/src/main/java/org/apache/ode/il/OMUtils.java b/bpel-epr/src/main/java/org/apache/ode/il/OMUtils.java
index 0ad4580..6df7cbf 100644
--- a/bpel-epr/src/main/java/org/apache/ode/il/OMUtils.java
+++ b/bpel-epr/src/main/java/org/apache/ode/il/OMUtils.java
@@ -35,8 +35,8 @@
 import org.apache.axiom.om.OMNamespace;
 import org.apache.axiom.om.OMNode;
 import org.apache.axiom.om.OMText;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.utils.DOMUtils;
 import org.apache.ode.utils.NSContext;
 import org.w3c.dom.Attr;
@@ -54,7 +54,7 @@
  */
 public class OMUtils {
 
-    private static Log __log = LogFactory.getLog(OMUtils.class);
+    private static Logger __log = LoggerFactory.getLogger(OMUtils.class);
 
     public static OMElement getFirstChildWithName(OMElement parent, String name) {
         if (parent == null)
diff --git a/bpel-epr/src/main/java/org/apache/ode/il/config/OdeConfigProperties.java b/bpel-epr/src/main/java/org/apache/ode/il/config/OdeConfigProperties.java
index cc519bd..c03edf6 100644
--- a/bpel-epr/src/main/java/org/apache/ode/il/config/OdeConfigProperties.java
+++ b/bpel-epr/src/main/java/org/apache/ode/il/config/OdeConfigProperties.java
@@ -19,8 +19,8 @@
 
 package org.apache.ode.il.config;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.utils.SystemUtils;
 
 import java.io.File;
@@ -38,7 +38,7 @@
 public class OdeConfigProperties {
     private static final long serialVersionUID = 1L;
 
-    private static final Log __log = LogFactory.getLog(OdeConfigProperties.class);
+    private static final Logger __log = LoggerFactory.getLogger(OdeConfigProperties.class);
 
     public static final String PROP_DB_MODE = "db.mode";
 
diff --git a/bpel-epr/src/main/java/org/apache/ode/il/dbutil/Database.java b/bpel-epr/src/main/java/org/apache/ode/il/dbutil/Database.java
index 9d8c04d..de6cd03 100644
--- a/bpel-epr/src/main/java/org/apache/ode/il/dbutil/Database.java
+++ b/bpel-epr/src/main/java/org/apache/ode/il/dbutil/Database.java
@@ -23,8 +23,8 @@
 import javax.sql.DataSource;
 import javax.transaction.TransactionManager;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.dao.BpelDAOConnectionFactoryJDBC;
 import org.apache.ode.il.config.OdeConfigProperties;
 import org.apache.ode.utils.LoggingInterceptor;
@@ -34,9 +34,9 @@
  *
  */
 public abstract class Database {
-    protected static final Log __log = LogFactory.getLog(Database.class);
+    protected static final Logger __log = LoggerFactory.getLogger(Database.class);
 
-    protected static final Log __logSql = LogFactory.getLog("org.apache.ode.sql");
+    protected static final Logger __logSql = LoggerFactory.getLogger("org.apache.ode.sql");
 
     protected static final Messages __msgs = Messages.getMessages(Messages.class);
 
diff --git a/bpel-epr/src/main/java/org/apache/ode/il/dbutil/DatabaseConnectionManager.java b/bpel-epr/src/main/java/org/apache/ode/il/dbutil/DatabaseConnectionManager.java
index 2ef9732..c965cc2 100644
--- a/bpel-epr/src/main/java/org/apache/ode/il/dbutil/DatabaseConnectionManager.java
+++ b/bpel-epr/src/main/java/org/apache/ode/il/dbutil/DatabaseConnectionManager.java
@@ -22,8 +22,8 @@
 import javax.sql.DataSource;
 import javax.transaction.TransactionManager;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.geronimo.connector.outbound.GenericConnectionManager;
 import org.apache.geronimo.connector.outbound.connectionmanagerconfig.LocalTransactions;
 import org.apache.geronimo.connector.outbound.connectionmanagerconfig.PoolingSupport;
@@ -38,7 +38,7 @@
 public class DatabaseConnectionManager {
 
     private static final long serialVersionUID = 1L;
-    private static final Log __log = LogFactory.getLog(DatabaseConnectionManager.class);
+    private static final Logger __log = LoggerFactory.getLogger(DatabaseConnectionManager.class);
     private static final Messages __msgs = Messages.getMessages(Messages.class);
     private static final int CONNECTION_MAX_WAIT_MILLIS = 30000;
     private static final int CONNECTION_MAX_IDLE_MINUTES = 5;
@@ -114,4 +114,4 @@
     public DataSource getDataSource() {
         return _dataSource;
     }
-}
\ No newline at end of file
+}
diff --git a/bpel-epr/src/main/java/org/apache/ode/il/dbutil/DerbyEmbeddedDB.java b/bpel-epr/src/main/java/org/apache/ode/il/dbutil/DerbyEmbeddedDB.java
index c98f93b..efb27b7 100644
--- a/bpel-epr/src/main/java/org/apache/ode/il/dbutil/DerbyEmbeddedDB.java
+++ b/bpel-epr/src/main/java/org/apache/ode/il/dbutil/DerbyEmbeddedDB.java
@@ -47,7 +47,7 @@
             try {
                 DriverManager.getConnection(_dbUrl).close();
             } catch (SQLException se) {
-                __log.error(se);
+                __log.error("",se);
             }
             EmbeddedDataSource dds = new EmbeddedDataSource();
             dds.setDatabaseName("memory:" + _dbName);
diff --git a/bpel-epr/src/main/java/org/apache/ode/il/dbutil/InternalDB.java b/bpel-epr/src/main/java/org/apache/ode/il/dbutil/InternalDB.java
index 465d13b..adcc60c 100644
--- a/bpel-epr/src/main/java/org/apache/ode/il/dbutil/InternalDB.java
+++ b/bpel-epr/src/main/java/org/apache/ode/il/dbutil/InternalDB.java
@@ -68,7 +68,7 @@
     protected void shutdownDB() {}
     
     protected void initDataSource() throws DatabaseConfigException {
-        __log.info(__msgs.msgOdeUsingInternalDb(_odeConfig.getDbIntenralJdbcUrl(), _odeConfig.getDbInternalJdbcDriverClass()));
+        __log.info("",__msgs.msgOdeUsingInternalDb(_odeConfig.getDbIntenralJdbcUrl(), _odeConfig.getDbInternalJdbcDriverClass()));
         initInternalDb(_odeConfig.getDbIntenralJdbcUrl(), _odeConfig.getDbInternalJdbcDriverClass(),
                 _odeConfig.getDbInternalUserName(), _odeConfig.getDbInternalPassword());
     }
diff --git a/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/migrate/DeepEqualityHelper.java b/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/migrate/DeepEqualityHelper.java
index 5ddab47..a3430c5 100644
--- a/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/migrate/DeepEqualityHelper.java
+++ b/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/migrate/DeepEqualityHelper.java
@@ -13,8 +13,8 @@
 import java.util.Set;
 import java.util.Stack;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * compare two object for equality. default strategy:
@@ -28,7 +28,7 @@
  */
 public class DeepEqualityHelper{
 
-	private static final Log __log = LogFactory.getLog(ObjectTraverser.class);
+	private static final Logger __log = LoggerFactory.getLogger(ObjectTraverser.class);
     public boolean logFalseThrough = false;
     private Stack<String> st = new Stack<String>();
     
diff --git a/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/migrate/DomElementComparator.java b/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/migrate/DomElementComparator.java
index 92b496c..ec4b0ca 100644
--- a/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/migrate/DomElementComparator.java
+++ b/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/migrate/DomElementComparator.java
@@ -9,8 +9,8 @@
 import javax.xml.transform.dom.DOMSource;
 import javax.xml.transform.stream.StreamResult;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 import org.w3c.dom.ls.DOMImplementationLS;
@@ -21,7 +21,7 @@
  * @see DeepEqualityHelper
  */
 public class DomElementComparator implements EqualityComparator{
-    private static final Log __log = LogFactory.getLog(DomElementComparator.class);
+    private static final Logger __log = LoggerFactory.getLogger(DomElementComparator.class);
 	private DeepEqualityHelper deepEquality;
 	@Override
 	public Boolean objectsEqual(Object obj1, Object obj2) {
diff --git a/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/migrate/ExtensibeImplEqualityComp.java b/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/migrate/ExtensibeImplEqualityComp.java
index 17a14d9..6f2bd5f 100644
--- a/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/migrate/ExtensibeImplEqualityComp.java
+++ b/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/migrate/ExtensibeImplEqualityComp.java
@@ -6,8 +6,8 @@
 import java.util.Map.Entry;
 import java.util.Set;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.obj.DebugInfo;
 import org.apache.ode.bpel.obj.ExtensibleImpl;
 import org.apache.ode.bpel.obj.OProcess;
@@ -17,7 +17,7 @@
  * @see DeepEqualityHelper
  */
 public class ExtensibeImplEqualityComp implements EqualityComparator{
-    private static final Log __log = LogFactory.getLog(ExtensibeImplEqualityComp.class);
+    private static final Logger __log = LoggerFactory.getLogger(ExtensibeImplEqualityComp.class);
 	private DeepEqualityHelper deepEquality;
 	public ExtensibeImplEqualityComp() {
 	}
diff --git a/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/migrate/ObjectTraverser.java b/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/migrate/ObjectTraverser.java
index 30865dd..56a991d 100644
--- a/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/migrate/ObjectTraverser.java
+++ b/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/migrate/ObjectTraverser.java
@@ -6,15 +6,15 @@
 import java.util.Arrays;
 import java.util.List;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Traverse an Object with help of an {@link ObjectVisitor}, taking into consideration of cyclic references.
  * 
  */
 public class ObjectTraverser{
-    private static final Log __log = LogFactory.getLog(ObjectTraverser.class);
+    private static final Logger __log = LoggerFactory.getLogger(ObjectTraverser.class);
 
     private HandleTable htab = new HandleTable(1000, 0.8f);
 	private ObjectVisitor visitor;
diff --git a/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/migrate/OmOld2new.java b/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/migrate/OmOld2new.java
index 31f5280..4fedd01 100644
--- a/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/migrate/OmOld2new.java
+++ b/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/migrate/OmOld2new.java
@@ -12,8 +12,8 @@
 import java.util.Map.Entry;
 import java.util.Set;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.obj.ExtensibleImpl;
 
 /**
@@ -22,7 +22,7 @@
  * @see ObjectTraverser
  */
 public class OmOld2new extends AbstractObjectVisitor{
-    private static final Log __log = LogFactory.getLog(OmOld2new.class);
+    private static final Logger __log = LoggerFactory.getLogger(OmOld2new.class);
     
 	private static Map<String, String> beanPkgMap = new HashMap<String, String>();
 	static{
diff --git a/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/migrate/UpgradeChecker.java b/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/migrate/UpgradeChecker.java
index 41809d8..66d4354 100644
--- a/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/migrate/UpgradeChecker.java
+++ b/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/migrate/UpgradeChecker.java
@@ -3,8 +3,8 @@
 import java.lang.reflect.Field;
 import java.util.List;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.obj.ExtensibleImpl;
 
 /**
@@ -14,7 +14,7 @@
  * @see ObjectTraverser
  */
 public class UpgradeChecker extends AbstractObjectVisitor{
-    private static final Log __log = LogFactory.getLog(UpgradeChecker.class);
+    private static final Logger __log = LoggerFactory.getLogger(UpgradeChecker.class);
 
     private boolean newest = true;
 	@Override
diff --git a/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/serde/DeSerializer.java b/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/serde/DeSerializer.java
index 300ca12..6860741 100644
--- a/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/serde/DeSerializer.java
+++ b/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/serde/DeSerializer.java
@@ -17,8 +17,8 @@
 
 import javax.xml.namespace.QName;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.o.Serializer;
 import org.apache.ode.bpel.obj.OProcess;
 import org.apache.ode.bpel.obj.OProcessWrapper;
@@ -34,7 +34,7 @@
  * @see OmSerdeFactory
  */
 public class DeSerializer {
-	private static final Log __log = LogFactory.getLog(DeSerializer.class);
+	private static final Logger __log = LoggerFactory.getLogger(DeSerializer.class);
 
 	private OProcessWrapper wrapper = new OProcessWrapper();
 	private InputStream is;
diff --git a/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/serde/JsonOmDeserializer.java b/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/serde/JsonOmDeserializer.java
index d8918d7..8953ac9 100644
--- a/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/serde/JsonOmDeserializer.java
+++ b/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/serde/JsonOmDeserializer.java
@@ -12,8 +12,8 @@
 import javax.wsdl.OperationType;
 import javax.xml.namespace.QName;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.obj.OProcess;
 import org.apache.ode.bpel.obj.serde.jacksonhack.TypeBeanSerializerFactory;
 import org.apache.ode.utils.NSContext;
@@ -47,8 +47,7 @@
  * @see JsonOmSerializer
  */
 public class JsonOmDeserializer implements OmDeserializer {
-	protected static final Log __log = LogFactory
-			.getLog(JsonOmDeserializer.class);
+	protected static final Logger __log = LoggerFactory.getLogger(JsonOmDeserializer.class);
 
 	private OProcess process;
 	private InputStream is;
diff --git a/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/serde/JsonOmSerializer.java b/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/serde/JsonOmSerializer.java
index 9f0c762..1ec6778 100644
--- a/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/serde/JsonOmSerializer.java
+++ b/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/serde/JsonOmSerializer.java
@@ -11,8 +11,8 @@
 import javax.wsdl.OperationType;
 import javax.wsdl.Part;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.obj.OProcess;
 import org.apache.ode.bpel.obj.serde.jacksonhack.TypeBeanSerializerFactory;
 import org.apache.ode.utils.NSContext;
@@ -38,8 +38,7 @@
  * @see JsonOmDeserializer
  */
 public class JsonOmSerializer implements OmSerializer {
-	protected static final Log __log = LogFactory
-			.getLog(JsonOmSerializer.class);
+	protected static final Logger __log = LoggerFactory.getLogger(JsonOmSerializer.class);
 
 	private OutputStream os;
 	private OProcess process;
diff --git a/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/XslRuntimeUriResolver.java b/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/XslRuntimeUriResolver.java
index 38395f6..21f5fbe 100644
--- a/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/XslRuntimeUriResolver.java
+++ b/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/XslRuntimeUriResolver.java
@@ -30,8 +30,8 @@
 import javax.xml.transform.URIResolver;
 import javax.xml.transform.stream.StreamSource;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.elang.xpath10.obj.OXPath10Expression;
 import org.apache.ode.bpel.obj.OXslSheet;
 import org.apache.ode.utils.StreamUtils;
@@ -44,7 +44,7 @@
  */
 public class XslRuntimeUriResolver implements URIResolver {
 
-    private static final Log __log = LogFactory.getLog(XslRuntimeUriResolver.class);
+    private static final Logger __log = LoggerFactory.getLogger(XslRuntimeUriResolver.class);
 
     private OXPath10Expression _expr;
     private final URI _baseResourceURI;
diff --git a/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xpath10/runtime/JaxenContexts.java b/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xpath10/runtime/JaxenContexts.java
index 0abee3c..94abe32 100644
--- a/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xpath10/runtime/JaxenContexts.java
+++ b/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xpath10/runtime/JaxenContexts.java
@@ -29,8 +29,8 @@
 
 import net.sf.saxon.dom.NodeWrapper;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.common.FaultException;
 import org.apache.ode.bpel.elang.XslRuntimeUriResolver;
 import org.apache.ode.bpel.elang.xpath10.obj.OXPath10Expression;
@@ -63,7 +63,7 @@
  * {@link EvaluationContext}.
  */
 class JaxenContexts implements FunctionContext, VariableContext {
-    private static final Log __log = LogFactory.getLog(JaxenContexts.class);
+    private static final Logger __log = LoggerFactory.getLogger(JaxenContexts.class);
 
     /** Static, thread-safe singleton implementing default XPath functions */
     private static final FunctionContext __defaultXPathFunctions = XPathFunctionContext.getInstance();
@@ -247,9 +247,8 @@
 
             OXPath10Expression.OSigGetVariableData sig = _oxpath.resolveGetVariableDataSig(varname,partname,xpathStr);
             if (sig == null) {
-                String msg = "InternalError: Attempt to use an unknown getVariableData signature: " + args;
-                if (__log.isFatalEnabled())
-                    __log.fatal(msg);
+                String msg = "InternalError: Attempt to use an unknown getVariableData signature: " + args;                
+                __log.error(msg);
                 throw new FunctionCallException(msg);
             }
 
diff --git a/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xpath10/runtime/JaxenNamespaceContextAdapter.java b/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xpath10/runtime/JaxenNamespaceContextAdapter.java
index b29a7a2..9601882 100644
--- a/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xpath10/runtime/JaxenNamespaceContextAdapter.java
+++ b/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xpath10/runtime/JaxenNamespaceContextAdapter.java
@@ -18,8 +18,8 @@
  */
 package org.apache.ode.bpel.elang.xpath10.runtime;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.jaxen.NamespaceContext;
 
 /**
@@ -28,7 +28,7 @@
  * @pattern Adapter
  */
 class JaxenNamespaceContextAdapter implements NamespaceContext {
-  private static final Log __log = LogFactory.getLog(JaxenNamespaceContextAdapter.class);
+  private static final Logger __log = LoggerFactory.getLogger(JaxenNamespaceContextAdapter.class);
 
   private javax.xml.namespace.NamespaceContext _namespaceContext;
 
diff --git a/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xpath10/runtime/XPath10ExpressionRuntime.java b/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xpath10/runtime/XPath10ExpressionRuntime.java
index f2a5476..f60840f 100644
--- a/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xpath10/runtime/XPath10ExpressionRuntime.java
+++ b/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xpath10/runtime/XPath10ExpressionRuntime.java
@@ -18,8 +18,8 @@
  */
 package org.apache.ode.bpel.elang.xpath10.runtime;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.common.FaultException;
 import org.apache.ode.bpel.elang.xpath10.obj.OXPath10Expression;
 import org.apache.ode.bpel.explang.ConfigurationException;
@@ -54,7 +54,7 @@
  */
 public class XPath10ExpressionRuntime implements ExpressionLanguageRuntime {
     /** Class-level logger. */
-    private static final Log __log = LogFactory.getLog(XPath10ExpressionRuntime.class);
+    private static final Logger __log = LoggerFactory.getLogger(XPath10ExpressionRuntime.class);
 
     /** Compiled expression cache. */
     private final Map<String, XPath> _compiledExpressions = new HashMap<String, XPath>();
diff --git a/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xpath20/runtime/JaxpFunctionResolver.java b/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xpath20/runtime/JaxpFunctionResolver.java
index 5dd082d..14430eb 100644
--- a/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xpath20/runtime/JaxpFunctionResolver.java
+++ b/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xpath20/runtime/JaxpFunctionResolver.java
@@ -45,8 +45,8 @@
 import net.sf.saxon.value.YearMonthDurationValue;
 
 import org.apache.commons.httpclient.URIException;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.common.FaultException;
 import org.apache.ode.bpel.elang.XslRuntimeUriResolver;
 import org.apache.ode.bpel.elang.xpath10.obj.OXPath10Expression;
@@ -74,7 +74,7 @@
  */
 public class JaxpFunctionResolver implements XPathFunctionResolver {
 
-    private static final Log __log = LogFactory.getLog(JaxpFunctionResolver.class);
+    private static final Logger __log = LoggerFactory.getLogger(JaxpFunctionResolver.class);
 
     private EvaluationContext _ectx;
     private OXPath20ExpressionBPEL20 _oxpath;
@@ -175,8 +175,7 @@
             OXPath10Expression.OSigGetVariableData sig = _oxpath.resolveGetVariableDataSig(varname, partname, xpathStr);
             if (sig == null) {
                 String msg = "InternalError: Attempt to use an unknown getVariableData signature: " + args;
-                if (__log.isFatalEnabled())
-                    __log.fatal(msg);
+                __log.error(msg);
                 throw new XPathFunctionException(msg);
             }
 
diff --git a/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xpath20/runtime/JaxpVariableResolver.java b/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xpath20/runtime/JaxpVariableResolver.java
index 2f6a405..bdb9af6 100644
--- a/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xpath20/runtime/JaxpVariableResolver.java
+++ b/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xpath20/runtime/JaxpVariableResolver.java
@@ -31,8 +31,8 @@
 import net.sf.saxon.value.StringValue;
 import net.sf.saxon.value.Value;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.common.FaultException;
 import org.apache.ode.bpel.elang.xpath10.obj.OXPath10ExpressionBPEL20;
 import org.apache.ode.bpel.elang.xpath20.compiler.WrappedResolverException;
@@ -50,7 +50,7 @@
  */
 public class JaxpVariableResolver implements XPathVariableResolver {
 
-    private static final Log __log = LogFactory.getLog(JaxpVariableResolver.class);
+    private static final Logger __log = LoggerFactory.getLogger(JaxpVariableResolver.class);
 
     private EvaluationContext _ectx;
     private OXPath10ExpressionBPEL20 _oxpath;
diff --git a/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xpath20/runtime/XPath20ExpressionRuntime.java b/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xpath20/runtime/XPath20ExpressionRuntime.java
index 74ac7e0..73d2acd 100644
--- a/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xpath20/runtime/XPath20ExpressionRuntime.java
+++ b/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xpath20/runtime/XPath20ExpressionRuntime.java
@@ -38,8 +38,8 @@
 import net.sf.saxon.value.DurationValue;
 import net.sf.saxon.xpath.XPathFactoryImpl;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.common.FaultException;
 import org.apache.ode.bpel.elang.xpath10.obj.OXPath10Expression;
 import org.apache.ode.bpel.elang.xpath20.compiler.WrappedResolverException;
@@ -72,7 +72,7 @@
     static final short NUMBER_TYPE = 5;
 
     /** Class-level logger. */
-    private static final Log __log = LogFactory.getLog(XPath20ExpressionRuntime.class);
+    private static final Logger __log = LoggerFactory.getLogger(XPath20ExpressionRuntime.class);
     
     private final XPathFactory _xpf = new XPathFactoryImpl();
 
diff --git a/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xquery10/runtime/XQuery10ExpressionRuntime.java b/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xquery10/runtime/XQuery10ExpressionRuntime.java
index 5678b51..36bf2ea 100644
--- a/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xquery10/runtime/XQuery10ExpressionRuntime.java
+++ b/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xquery10/runtime/XQuery10ExpressionRuntime.java
@@ -56,8 +56,8 @@
 import net.sf.saxon.xqj.SaxonXQDataSource;
 import net.sf.saxon.xqj.SaxonXQItem;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.common.FaultException;
 import org.apache.ode.bpel.elang.xpath20.compiler.Constants;
 import org.apache.ode.bpel.elang.xpath20.compiler.WrappedResolverException;
@@ -94,7 +94,7 @@
     static final short NUMBER_TYPE = 5;
 
     /** Class-level logger. */
-    private static final Log __log = LogFactory.getLog(XQuery10ExpressionRuntime.class);
+    private static final Logger __log = LoggerFactory.getLogger(XQuery10ExpressionRuntime.class);
 
     /**
      * Creates a new XQuery10ExpressionRuntime object.
diff --git a/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelDatabase.java b/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelDatabase.java
index 8f4706a..d933730 100644
--- a/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelDatabase.java
+++ b/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelDatabase.java
@@ -26,14 +26,14 @@
 import org.apache.ode.bpel.dao.BpelDAOConnectionFactory;
 import org.apache.ode.bpel.iapi.Scheduler;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Encapsulates transactional access to the BPEL database.
  */
 public class BpelDatabase {
-  static Log __log = LogFactory.getLog(BpelDatabase.class);
+  static Logger __log = LoggerFactory.getLogger(BpelDatabase.class);
 
   protected BpelDAOConnectionFactory _sscf;
   protected Scheduler _scheduler;
diff --git a/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelEngineImpl.java b/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelEngineImpl.java
index b0473bc..da4f86c 100644
--- a/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelEngineImpl.java
+++ b/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelEngineImpl.java
@@ -19,8 +19,8 @@
 
 package org.apache.ode.bpel.engine;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.clapi.ClusterLock;
 import org.apache.ode.bpel.dao.MessageExchangeDAO;
 import org.apache.ode.bpel.dao.ProcessDAO;
@@ -76,7 +76,7 @@
  * @author Matthieu Riou <mriou at apache dot org>
  */
 public class BpelEngineImpl implements BpelEngine {
-    private static final Log __log = LogFactory.getLog(BpelEngineImpl.class);
+    private static final Logger __log = LoggerFactory.getLogger(BpelEngineImpl.class);
 
     /** RNG, for delays */
     private Random _random = new Random(System.currentTimeMillis());
@@ -265,7 +265,7 @@
             break;
         default:
             String errmsg = "BpelEngineImpl: internal error, invalid MexDAO direction: " + mexId;
-            __log.fatal(errmsg);
+            __log.error(errmsg);
             throw new BpelEngineException(errmsg);
         }
 
diff --git a/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelProcess.java b/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelProcess.java
index e8d0580..5858d93 100644
--- a/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelProcess.java
+++ b/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelProcess.java
@@ -32,8 +32,8 @@
 import javax.wsdl.Fault;
 import javax.xml.namespace.QName;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.agents.memory.SizingAgent;
 import org.apache.ode.bpel.common.FaultException;
 import org.apache.ode.bpel.common.ProcessState;
@@ -89,7 +89,7 @@
  * @author Matthieu Riou <mriou at apache dot org>
  */
 public class BpelProcess {
-    static final Log __log = LogFactory.getLog(BpelProcess.class);
+    static final Logger __log = LoggerFactory.getLogger(BpelProcess.class);
 
     private static final Messages __msgs = MessageBundle.getMessages(Messages.class);
 
diff --git a/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelProcessDatabase.java b/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelProcessDatabase.java
index f6b4b2e..f2c4cab 100644
--- a/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelProcessDatabase.java
+++ b/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelProcessDatabase.java
@@ -24,14 +24,14 @@
 
 import javax.xml.namespace.QName;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Encapusulates access to a BPEL process database.
  */
 class BpelProcessDatabase extends BpelDatabase {
-  static Log __log = LogFactory.getLog(BpelProcessDatabase.class);
+  static Logger __log = LoggerFactory.getLogger(BpelProcessDatabase.class);
 
   private QName _processId;
 
diff --git a/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelRuntimeContextImpl.java b/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelRuntimeContextImpl.java
index 7ceac7c..97544bd 100644
--- a/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelRuntimeContextImpl.java
+++ b/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelRuntimeContextImpl.java
@@ -31,8 +31,8 @@
 import javax.wsdl.Operation;
 import javax.xml.namespace.QName;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.common.CorrelationKey;
 import org.apache.ode.bpel.common.CorrelationKeySet;
 import org.apache.ode.bpel.common.FaultException;
@@ -108,7 +108,7 @@
 
 public class BpelRuntimeContextImpl implements BpelRuntimeContext {
 
-    private static final Log __log = LogFactory.getLog(BpelRuntimeContextImpl.class);
+    private static final Logger __log = LoggerFactory.getLogger(BpelRuntimeContextImpl.class);
 
     /** Data-access object for process instance. */
     protected ProcessInstanceDAO _dao;
@@ -1214,14 +1214,14 @@
         if (dao == null) {
             // this should not happen....
             String msg = "Engine requested non-existent message exchange: " + mexId;
-            __log.fatal(msg);
+            __log.error(msg);
             throw new BpelEngineException(msg);
         }
 
         if (dao.getDirection() != MessageExchangeDAO.DIR_PARTNER_INVOKES_MYROLE) {
             // this should not happen....
             String msg = "Engine requested my-role request for a partner-role mex: " + mexId;
-            __log.fatal(msg);
+            __log.error(msg);
             throw new BpelEngineException(msg);
         }
 
@@ -1235,7 +1235,7 @@
                 if (request == null) {
                     // this also should not happen
                     String msg = "Engine requested request for message exchange that did not have one: " + mexId;
-                    __log.fatal(msg);
+                    __log.error(msg);
                     throw new BpelEngineException(msg);
                 }
                 return mergeHeaders(request);
@@ -1243,7 +1243,7 @@
                 // We should not be in any other state when requesting this.
                 String msg = "Engine requested response while the message exchange " + mexId + " was in the state "
                         + status;
-                __log.fatal(msg);
+                __log.error(msg);
                 throw new BpelEngineException(msg);
         }
     }
@@ -1289,13 +1289,13 @@
         if (dao == null) {
             // this should not happen....
             String msg = "Engine requested non-existent message exchange: " + mexId;
-            __log.fatal(msg);
+            __log.error(msg);
             throw new BpelEngineException(msg);
         }
         if (dao.getDirection() != MessageExchangeDAO.DIR_BPEL_INVOKES_PARTNERROLE) {
             // this should not happen....
             String msg = "Engine requested partner response for a my-role mex: " + mexId;
-            __log.fatal(msg);
+            __log.error(msg);
             throw new BpelEngineException(msg);
         }
 
@@ -1308,7 +1308,7 @@
                 if (response == null) {
                     // this also should not happen
                     String msg = "Engine requested response for message exchange that did not have one: " + mexId;
-                    __log.fatal(msg);
+                    __log.error(msg);
                     throw new BpelEngineException(msg);
                 }
                 break;
@@ -1319,7 +1319,7 @@
                 // We should not be in any other state when requesting this.
                 String msg = "Engine requested response while the message exchange " + mexId + " was in the state "
                         + status;
-                __log.fatal(msg);
+                __log.error(msg);
                 throw new BpelEngineException(msg);
         }
         return response;
diff --git a/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelServerImpl.java b/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelServerImpl.java
index 2334262..3966fc1 100644
--- a/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelServerImpl.java
+++ b/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelServerImpl.java
@@ -33,8 +33,8 @@
 
 import javax.xml.namespace.QName;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.clapi.ClusterManager;
 import org.apache.ode.bpel.dao.BpelDAOConnection;
 import org.apache.ode.bpel.dao.BpelDAOConnectionFactory;
@@ -83,7 +83,7 @@
  * @author Matthieu Riou <mriou at apache dot org>
  */
 public class BpelServerImpl implements BpelServer, Scheduler.JobProcessor {
-    private static final Log __log = LogFactory.getLog(BpelServerImpl.class);
+    private static final Logger __log = LoggerFactory.getLogger(BpelServerImpl.class);
 
     private static final Messages __msgs = MessageBundle.getMessages(Messages.class);
 
diff --git a/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/CustomProcessProperties.java b/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/CustomProcessProperties.java
index c8f17ec..9c7c21a 100644
--- a/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/CustomProcessProperties.java
+++ b/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/CustomProcessProperties.java
@@ -23,15 +23,15 @@
 
 import javax.xml.namespace.QName;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.utils.DOMUtils;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
 
 public class CustomProcessProperties {
-    private static final Log __log = LogFactory.getLog(CustomProcessProperties.class);
+    private static final Logger __log = LoggerFactory.getLogger(CustomProcessProperties.class);
 
     public Node getProperty(QName propertyName) {
         String name = propertyName.getLocalPart();
diff --git a/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/DebuggerSupport.java b/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/DebuggerSupport.java
index 34031ca..ec64736 100644
--- a/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/DebuggerSupport.java
+++ b/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/DebuggerSupport.java
@@ -18,8 +18,8 @@
  */
 package org.apache.ode.bpel.engine;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.iapi.DebuggerContext;
 import org.apache.ode.bpel.iapi.Scheduler.JobDetails;
 import org.apache.ode.bpel.iapi.Scheduler.JobType;
@@ -62,7 +62,7 @@
  */
 public class DebuggerSupport implements DebuggerContext {
 
-    private static final Log __log = LogFactory.getLog(DebuggerSupport.class);
+    private static final Logger __log = LoggerFactory.getLogger(DebuggerSupport.class);
     private static final Messages __msgs = MessageBundle.getMessages(Messages.class);
 
     static final Breakpoint[] EMPTY_BP = new Breakpoint[0];
diff --git a/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/IMAManager.java b/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/IMAManager.java
index 4954b5c..c59581d 100644
--- a/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/IMAManager.java
+++ b/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/IMAManager.java
@@ -27,8 +27,8 @@
 
 import javax.wsdl.OperationType;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.runtime.PartnerLinkInstance;
 import org.apache.ode.bpel.runtime.Selector;
 import org.apache.ode.utils.ObjectPrinter;
@@ -44,7 +44,7 @@
 public class IMAManager implements Serializable {
     private static final long serialVersionUID = -5556374398943757951L;
 
-    private static final Log __log = LogFactory.getLog(IMAManager.class);
+    private static final Logger __log = LoggerFactory.getLogger(IMAManager.class);
 
     // holds rid for registered IMAs
     public final Map<RequestIdTuple, Entry> _byRid = new HashMap<RequestIdTuple, Entry>();
@@ -89,7 +89,7 @@
 
         if (_byChannel.containsKey(pickResponseChannel)) {
             String errmsg = "INTERNAL ERROR: Duplicate ENTRY for RESPONSE CHANNEL " + pickResponseChannel;
-            __log.fatal(errmsg);
+            __log.error(errmsg);
             throw new IllegalArgumentException(errmsg);
         }
 
@@ -98,7 +98,7 @@
             final RequestIdTuple rid = new RequestIdTuple(selectors[i].plinkInstance, selectors[i].opName);
             if (_byRid.containsKey(rid)) {
                 String errmsg = "INTERNAL ERROR: Duplicate ENTRY for RID " + rid;
-                __log.fatal(errmsg);
+                __log.error(errmsg);
                 throw new IllegalStateException(errmsg);
             }
             _byRid.put(rid, entry);
@@ -148,7 +148,7 @@
             while (_byRid.values().remove(entry));
         } else if (!isTimer){
             String errmsg = "INTERNAL ERROR: No ENTRY for RESPONSE CHANNEL " + pickResponseChannel;
-            __log.fatal(errmsg);
+            __log.error(errmsg);
             throw new IllegalArgumentException(errmsg);
         }
     }
diff --git a/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/IMAManager2.java b/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/IMAManager2.java
index a629e8f..44d86f4 100644
--- a/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/IMAManager2.java
+++ b/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/IMAManager2.java
@@ -28,8 +28,8 @@
 
 import javax.wsdl.OperationType;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.common.CorrelationKeySet;
 import org.apache.ode.bpel.runtime.PartnerLinkInstance;
 import org.apache.ode.bpel.runtime.Selector;
@@ -44,7 +44,7 @@
 public class IMAManager2 implements Serializable {
     private static final long serialVersionUID = -5556374398943757951L;
 
-    private static final Log __log = LogFactory.getLog(IMAManager2.class);
+    private static final Logger __log = LoggerFactory.getLogger(IMAManager2.class);
 
     // holds rid for registered IMAs
     public final Map<RequestIdTuple, Entry> _byRid = new HashMap<RequestIdTuple, Entry>();
@@ -89,7 +89,7 @@
 
         if (_byChannel.containsKey(pickResponseChannel)) {
             String errmsg = "INTERNAL ERROR: Duplicate ENTRY for RESPONSE CHANNEL " + pickResponseChannel;
-            __log.fatal(errmsg);
+            __log.error(errmsg);
             throw new IllegalArgumentException(errmsg);
         }
 
@@ -98,7 +98,7 @@
             final RequestIdTuple rid = new RequestIdTuple(selectors[i].plinkInstance, selectors[i].opName, selectors[i].correlationKeySet);
             if (_byRid.containsKey(rid)) {
                 String errmsg = "INTERNAL ERROR: Duplicate ENTRY for RID " + rid;
-                __log.fatal(errmsg);
+                __log.error(errmsg);
                 throw new IllegalStateException(errmsg);
             }
             _byRid.put(rid, entry);
@@ -148,7 +148,7 @@
             while (_byRid.values().remove(entry));
         } else if (!isTimer){
             String errmsg = "INTERNAL ERROR: No ENTRY for RESPONSE CHANNEL " + pickResponseChannel;
-            __log.fatal(errmsg);
+            __log.error(errmsg);
             throw new IllegalArgumentException(errmsg);
         }
     }
diff --git a/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/InstanceLockManager.java b/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/InstanceLockManager.java
index 1571eac..3075a81 100644
--- a/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/InstanceLockManager.java
+++ b/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/InstanceLockManager.java
@@ -18,8 +18,8 @@
  */
 package org.apache.ode.bpel.engine;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.clapi.ClusterLock;
 
 import java.util.HashMap;
@@ -38,7 +38,7 @@
  * @author Maciej Szefler - m s z e f l e r @ g m a i l . c o m
  */
 public class InstanceLockManager implements ClusterLock<Long> {
-    private static final Log __log = LogFactory.getLog(InstanceLockManager.class);
+    private static final Logger __log = LoggerFactory.getLogger(InstanceLockManager.class);
 
     private final Lock _mutex = new java.util.concurrent.locks.ReentrantLock();
     private final Map<Long, InstanceInfo> _locks = new HashMap<Long,InstanceInfo>();
diff --git a/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/MessageExchangeImpl.java b/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/MessageExchangeImpl.java
index 010b3ac..820f4f1 100644
--- a/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/MessageExchangeImpl.java
+++ b/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/MessageExchangeImpl.java
@@ -19,8 +19,8 @@
 
 package org.apache.ode.bpel.engine;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.dao.MessageDAO;
 import org.apache.ode.bpel.dao.MessageExchangeDAO;
 import org.apache.ode.bpel.iapi.BpelEngineException;
@@ -37,7 +37,7 @@
 
 abstract class MessageExchangeImpl implements MessageExchange {
 
-    private static final Log __log = LogFactory.getLog(MessageExchangeImpl.class);
+    private static final Logger __log = LoggerFactory.getLogger(MessageExchangeImpl.class);
     protected static final Messages __msgs = MessageBundle.getMessages(Messages.class);
 
     /** Process-Instance identifier.*/
diff --git a/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/MyRoleMessageExchangeImpl.java b/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/MyRoleMessageExchangeImpl.java
index 232791f..a9320a3 100644
--- a/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/MyRoleMessageExchangeImpl.java
+++ b/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/MyRoleMessageExchangeImpl.java
@@ -31,8 +31,8 @@
 
 import javax.xml.namespace.QName;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.dao.MessageExchangeDAO;
 import org.apache.ode.bpel.engine.replayer.Replayer;
 import org.apache.ode.bpel.iapi.Message;
@@ -53,7 +53,7 @@
 
 public class MyRoleMessageExchangeImpl extends MessageExchangeImpl implements MyRoleMessageExchange {
 
-    private static final Log __log = LogFactory.getLog(MyRoleMessageExchangeImpl.class);
+    private static final Logger __log = LoggerFactory.getLogger(MyRoleMessageExchangeImpl.class);
 
     protected BpelProcess _process;
 
@@ -113,7 +113,7 @@
     public Future invoke(Message request) {
         if (request == null) {
             String errmsg = "Must pass non-null message to invoke()!";
-            __log.fatal(errmsg);
+            __log.error(errmsg);
             throw new NullPointerException(errmsg);
         }
 
diff --git a/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/NStateLatch.java b/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/NStateLatch.java
index f7c7ac7..3a8293f 100644
--- a/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/NStateLatch.java
+++ b/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/NStateLatch.java
@@ -19,8 +19,8 @@
 
 package org.apache.ode.bpel.engine;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.util.concurrent.locks.Condition;
 import java.util.concurrent.locks.Lock;
@@ -38,7 +38,7 @@
  * @author Maciej Szefler ( m s z e f l e r @ g m a i l . c o m )
  */
 public class NStateLatch {
-    static final Log __log = LogFactory.getLog(NStateLatch.class);
+    static final Logger __log = LoggerFactory.getLogger(NStateLatch.class);
 
     /** Current state. */
     private int _state = -1;
diff --git a/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/OutstandingRequestManager.java b/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/OutstandingRequestManager.java
index 7746d2b..e6c0ce4 100644
--- a/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/OutstandingRequestManager.java
+++ b/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/OutstandingRequestManager.java
@@ -29,8 +29,8 @@
 import java.util.HashSet;
 import java.util.Map;
 import java.util.Set;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * <p>
@@ -48,7 +48,7 @@
 public class OutstandingRequestManager implements Serializable {
   private static final long serialVersionUID = -5556374398943757951L;
 
-  private static final Log __log = LogFactory.getLog(OutstandingRequestManager.class);
+  private static final Logger __log = LoggerFactory.getLogger(OutstandingRequestManager.class);
 
   public final Map<RequestIdTuple, Entry> _byRid = new HashMap<RequestIdTuple, Entry>();
   public final Map<String, Entry> _byChannel = new HashMap<String, Entry>();
@@ -88,7 +88,7 @@
 
     if (_byChannel.containsKey(pickResponseChannel)) {
       String errmsg = "INTERNAL ERROR: Duplicate ENTRY for RESPONSE CHANNEL " + pickResponseChannel;
-      __log.fatal(errmsg);
+      __log.error(errmsg);
       throw new IllegalArgumentException(errmsg);
     }
 
@@ -101,7 +101,7 @@
       final RequestIdTuple rid = new RequestIdTuple(selectors[i].plinkInstance,selectors[i].opName, selectors[i].messageExchangeId);
       if (_byRid.containsKey(rid)) {
         String errmsg = "INTERNAL ERROR: Duplicate ENTRY for RID " + rid;
-        __log.fatal(errmsg);
+        __log.error(errmsg);
         throw new IllegalStateException(errmsg);
       }
       _byRid.put(rid,  entry);
@@ -143,7 +143,7 @@
     Entry entry = _byChannel.get(pickResponseChannel);
     if (entry == null) {
       String errmsg = "INTERNAL ERROR: No ENTRY for RESPONSE CHANNEL " + pickResponseChannel;
-      __log.fatal(errmsg);
+      __log.error(errmsg);
       throw new IllegalArgumentException(errmsg);
     }
 
@@ -151,7 +151,7 @@
 //    Hence, the sanity check shown below is no longer valid
 //    if (entry.mexRef != null) {
 //      String errmsg = "INTERNAL ERROR: Duplicate ASSOCIATION for CHANEL " + pickResponseChannel;
-//      __log.fatal(errmsg);
+//      __log.error(errmsg);
 //      throw new IllegalStateException(errmsg);
 //    }
 
diff --git a/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/PartnerLinkMyRoleImpl.java b/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/PartnerLinkMyRoleImpl.java
index ab05ce4..9146932 100644
--- a/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/PartnerLinkMyRoleImpl.java
+++ b/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/PartnerLinkMyRoleImpl.java
@@ -28,8 +28,8 @@
 import javax.wsdl.PortType;
 import javax.xml.namespace.QName;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.common.CorrelationKey;
 import org.apache.ode.bpel.common.CorrelationKeySet;
 import org.apache.ode.bpel.common.FaultException;
@@ -65,7 +65,7 @@
  * @author Matthieu Riou <mriou at apache dot org>
  */
 public class PartnerLinkMyRoleImpl extends PartnerLinkRoleImpl {
-    private static final Log __log = LogFactory.getLog(BpelProcess.class);
+    private static final Logger __log = LoggerFactory.getLogger(BpelProcess.class);
     private static final Messages __msgs = MessageBundle.getMessages(Messages.class);
 
     /** The local endpoint for this "myrole". */
diff --git a/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/PartnerLinkPartnerRoleImpl.java b/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/PartnerLinkPartnerRoleImpl.java
index 0508457..76be5a1 100644
--- a/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/PartnerLinkPartnerRoleImpl.java
+++ b/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/PartnerLinkPartnerRoleImpl.java
@@ -18,8 +18,8 @@
  */
 package org.apache.ode.bpel.engine;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.iapi.Endpoint;
 import org.apache.ode.bpel.iapi.PartnerRoleChannel;
 import org.apache.ode.bpel.obj.OPartnerLink;
@@ -28,7 +28,7 @@
  * @author Matthieu Riou <mriou at apache dot org>
  */
 class PartnerLinkPartnerRoleImpl extends PartnerLinkRoleImpl {
-    static final Log __log = LogFactory.getLog(BpelProcess.class);
+    static final Logger __log = LoggerFactory.getLogger(BpelProcess.class);
 
     Endpoint _initialPartner;
 
diff --git a/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/PartnerRoleMessageExchangeImpl.java b/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/PartnerRoleMessageExchangeImpl.java
index 6e7ed43..77a7795 100644
--- a/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/PartnerRoleMessageExchangeImpl.java
+++ b/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/PartnerRoleMessageExchangeImpl.java
@@ -19,8 +19,8 @@
 
 package org.apache.ode.bpel.engine;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.dao.MessageExchangeDAO;
 import org.apache.ode.bpel.engine.replayer.Replayer;
 import org.apache.ode.bpel.iapi.BpelEngineException;
@@ -38,7 +38,7 @@
 import javax.xml.namespace.QName;
 
 public class PartnerRoleMessageExchangeImpl extends MessageExchangeImpl implements PartnerRoleMessageExchange {
-    private static final Log LOG = LogFactory.getLog(PartnerRoleMessageExchangeImpl.class);
+    private static final Logger LOG = LoggerFactory.getLogger(PartnerRoleMessageExchangeImpl.class);
 
     private PartnerRoleChannel _channel;
     private EndpointReference _myRoleEPR;
diff --git a/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/ProcessAndInstanceManagementImpl.java b/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/ProcessAndInstanceManagementImpl.java
index dad6a64..e1a7bd9 100644
--- a/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/ProcessAndInstanceManagementImpl.java
+++ b/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/ProcessAndInstanceManagementImpl.java
@@ -41,8 +41,8 @@
 import javax.xml.namespace.QName;
 
 import org.apache.commons.collections.comparators.ComparatorChain;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.common.BpelEventFilter;
 import org.apache.ode.bpel.common.Filter;
 import org.apache.ode.bpel.common.InstanceFilter;
@@ -158,7 +158,7 @@
 
     protected static final Messages __msgs = MessageBundle.getMessages(Messages.class);
 
-    protected static Log __log = LogFactory.getLog(BpelManagementFacadeImpl.class);
+    protected static Logger __log = LoggerFactory.getLogger(BpelManagementFacadeImpl.class);
 
     protected static final ProcessStatusConverter __psc = new ProcessStatusConverter();
 
diff --git a/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/ProcessCleanUpRunnable.java b/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/ProcessCleanUpRunnable.java
index 6790ec8..96c79d4 100644
--- a/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/ProcessCleanUpRunnable.java
+++ b/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/ProcessCleanUpRunnable.java
@@ -24,8 +24,8 @@
 
 import javax.xml.namespace.QName;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.dao.DeferredProcessInstanceCleanable;
 import org.apache.ode.bpel.dao.ProcessDAO;
 import org.apache.ode.bpel.engine.BpelServerImpl.ContextsAware;
@@ -35,7 +35,7 @@
 public class ProcessCleanUpRunnable implements MapSerializableRunnable, ContextsAware {
     private static final long serialVersionUID = 1L;
 
-    private static final Log __log = LogFactory.getLog(ProcessCleanUpRunnable.class);
+    private static final Logger __log = LoggerFactory.getLogger(ProcessCleanUpRunnable.class);
 
     public final static int PROCESS_CLEANUP_TRANSACTION_SIZE = Integer.getInteger("org.apache.ode.processInstanceDeletion.transactionSize", 10);
 
diff --git a/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/cron/CronScheduler.java b/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/cron/CronScheduler.java
index e8142b1..691591a 100644
--- a/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/cron/CronScheduler.java
+++ b/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/cron/CronScheduler.java
@@ -31,8 +31,8 @@
 
 import javax.xml.namespace.QName;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.engine.Contexts;
 import org.apache.ode.bpel.engine.BpelServerImpl.ContextsAware;
 import org.apache.ode.bpel.iapi.ClusterAware;
@@ -43,7 +43,7 @@
 import org.apache.ode.utils.CronExpression;
 
 public class CronScheduler {
-    static final Log __log = LogFactory.getLog(CronScheduler.class);
+    static final Logger __log = LoggerFactory.getLogger(CronScheduler.class);
 
     // minimum interval of the cron job(1 second)
     private final long MIN_INTERVAL = 0;
diff --git a/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/cron/RuntimeDataCleanupRunnable.java b/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/cron/RuntimeDataCleanupRunnable.java
index 098f8b4..6320b36 100644
--- a/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/cron/RuntimeDataCleanupRunnable.java
+++ b/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/cron/RuntimeDataCleanupRunnable.java
@@ -25,8 +25,8 @@
 
 import javax.xml.namespace.QName;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.common.InstanceFilter;
 import org.apache.ode.bpel.dao.BpelDAOConnection;
 import org.apache.ode.bpel.dao.FilteredInstanceDeletable;
@@ -38,7 +38,7 @@
 import org.apache.ode.bpel.iapi.Scheduler.MapSerializableRunnable;
 
 public class RuntimeDataCleanupRunnable implements MapSerializableRunnable, ContextsAware {
-    private final Log __log = LogFactory.getLog(RuntimeDataCleanupRunnable.class);
+    private final Logger __log = LoggerFactory.getLogger(RuntimeDataCleanupRunnable.class);
 
     private static final long serialVersionUID = 1L;
 
diff --git a/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/cron/SystemSchedulesConfig.java b/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/cron/SystemSchedulesConfig.java
index 3721cd6..dfaa932 100644
--- a/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/cron/SystemSchedulesConfig.java
+++ b/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/cron/SystemSchedulesConfig.java
@@ -25,8 +25,8 @@
 import java.util.HashMap;
 import java.util.List;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.schedules.SchedulesDocument;
 import org.apache.ode.bpel.schedules.TSchedule;
 import org.apache.ode.bpel.dd.TCleanup;
@@ -40,7 +40,7 @@
 
 
 public class SystemSchedulesConfig {
-    private final static Log __log = LogFactory.getLog(SystemSchedulesConfig.class);
+    private final static Logger __log = LoggerFactory.getLogger(SystemSchedulesConfig.class);
 
     public final static String SCHEDULE_CONFIG_FILE_PROP_KEY = "org.apache.ode.scheduleConfigFile";
     private File schedulesFile;
diff --git a/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/extvar/ExternalVariableManager.java b/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/extvar/ExternalVariableManager.java
index 25cb69c..8c576ac 100644
--- a/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/extvar/ExternalVariableManager.java
+++ b/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/extvar/ExternalVariableManager.java
@@ -23,8 +23,8 @@
 
 import javax.xml.namespace.QName;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.engine.BpelProcess;
 import org.apache.ode.bpel.iapi.BpelEngineException;
 import org.apache.ode.bpel.obj.OBase;
@@ -47,7 +47,7 @@
  */
 public class ExternalVariableManager {
 
-    private static final Log __log = LogFactory.getLog(ExternalVariableManager.class);
+    private static final Logger __log = LoggerFactory.getLogger(ExternalVariableManager.class);
 
     /** Mapping of engine names to engine. */
     private Map<QName, ExternalVariableModule> _engines;
diff --git a/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/migration/CorrelationKeyMigration.java b/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/migration/CorrelationKeyMigration.java
index d3ca07f..3887e31 100644
--- a/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/migration/CorrelationKeyMigration.java
+++ b/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/migration/CorrelationKeyMigration.java
@@ -27,8 +27,8 @@
 import org.apache.ode.bpel.obj.*;
 import org.apache.ode.bpel.runtime.Selector;
 import org.apache.ode.jacob.vpu.ExecutionQueueImpl;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import javax.xml.namespace.QName;
 import javax.wsdl.Operation;
@@ -43,7 +43,7 @@
  * set id to one using its name. So something like 1~abc~de will become foo~abc~de.
  */
 public class CorrelationKeyMigration implements Migration {
-    private static final Log __log = LogFactory.getLog(CorrelationKeyMigration.class);
+    private static final Logger __log = LoggerFactory.getLogger(CorrelationKeyMigration.class);
 
     public boolean migrate(Set<BpelProcess> registeredProcesses, BpelDAOConnection connection) {
         // Map only used to avoid duplicates, set would force to re-implement equals
diff --git a/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/migration/CorrelationKeySetDataMigration.java b/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/migration/CorrelationKeySetDataMigration.java
index 33200e3..96cd72e 100644
--- a/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/migration/CorrelationKeySetDataMigration.java
+++ b/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/migration/CorrelationKeySetDataMigration.java
@@ -27,8 +27,8 @@
 import org.apache.ode.bpel.obj.OPartnerLink;
 import org.apache.ode.bpel.common.CorrelationKey;
 import org.apache.ode.bpel.common.CorrelationKeySet;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import javax.wsdl.Operation;
 import java.util.Set;
@@ -38,7 +38,7 @@
  * Changes the scheme of the correlation key value in the routes to use @2[...]
  */
 public class CorrelationKeySetDataMigration implements Migration {
-    private static final Log __log = LogFactory.getLog(CorrelationKeyMigration.class);
+    private static final Logger __log = LoggerFactory.getLogger(CorrelationKeyMigration.class);
 
     public boolean migrate(Set<BpelProcess> registeredProcesses, BpelDAOConnection connection) {
         for (BpelProcess process : registeredProcesses) {
diff --git a/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/migration/CorrelationKeySetMigration.java b/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/migration/CorrelationKeySetMigration.java
index 7374261..3e08590 100644
--- a/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/migration/CorrelationKeySetMigration.java
+++ b/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/migration/CorrelationKeySetMigration.java
@@ -30,8 +30,8 @@
 import org.apache.ode.bpel.common.CorrelationKeySet;
 import org.apache.ode.bpel.obj.OProcess;
 import org.apache.ode.jacob.vpu.ExecutionQueueImpl;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import javax.xml.namespace.QName;
 import java.util.Set;
@@ -45,7 +45,7 @@
  * Migrates the database from using single correlations to multiple correlations support.
  */
 public class CorrelationKeySetMigration implements Migration {
-    private static final Log __log = LogFactory.getLog(CorrelationKeySetMigration.class);
+    private static final Logger __log = LoggerFactory.getLogger(CorrelationKeySetMigration.class);
 
     public boolean migrate(Set<BpelProcess> registeredProcesses, BpelDAOConnection connection) {
         boolean v1First = true;
diff --git a/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/migration/CorrelatorsMigration.java b/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/migration/CorrelatorsMigration.java
index 6a97632..6443aff 100644
--- a/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/migration/CorrelatorsMigration.java
+++ b/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/migration/CorrelatorsMigration.java
@@ -24,8 +24,8 @@
 import org.apache.ode.bpel.dao.ProcessDAO;
 import org.apache.ode.bpel.dao.CorrelatorDAO;
 import org.apache.ode.bpel.obj.OPartnerLink;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import javax.wsdl.Operation;
 import java.util.Set;
@@ -36,7 +36,7 @@
  * partnerLinkId+"."+operationName to partnerLinkName+"."+operationName
  */
 public class CorrelatorsMigration implements Migration {
-    private static final Log __log = LogFactory.getLog(CorrelatorsMigration.class);
+    private static final Logger __log = LoggerFactory.getLogger(CorrelatorsMigration.class);
 
     public boolean migrate(Set<BpelProcess> registeredProcesses, BpelDAOConnection connection) {
         for (BpelProcess process : registeredProcesses) {
diff --git a/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/migration/IMAManagerMigration.java b/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/migration/IMAManagerMigration.java
index c6f8f4e..5843184 100644
--- a/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/migration/IMAManagerMigration.java
+++ b/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/migration/IMAManagerMigration.java
@@ -24,8 +24,8 @@
 import java.util.Collection;
 import java.util.Set;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.dao.BpelDAOConnection;
 import org.apache.ode.bpel.dao.ProcessDAO;
 import org.apache.ode.bpel.dao.ProcessInstanceDAO;
@@ -39,7 +39,7 @@
  *
  */
 public class IMAManagerMigration implements Migration {
-    private static Log __log = LogFactory.getLog(IMAManagerMigration.class);
+    private static Logger __log = LoggerFactory.getLogger(IMAManagerMigration.class);
 
     public boolean migrate(Set<BpelProcess> registeredProcesses, BpelDAOConnection connection) {
         boolean migrationResult = true;
diff --git a/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/migration/MigrationHandler.java b/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/migration/MigrationHandler.java
index 19071ba..07afa8d 100644
--- a/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/migration/MigrationHandler.java
+++ b/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/migration/MigrationHandler.java
@@ -31,8 +31,8 @@
 import java.util.Set;
 import java.util.concurrent.Callable;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.engine.BpelProcess;
 import org.apache.ode.bpel.engine.Contexts;
 
@@ -40,7 +40,7 @@
  * Checks database schema versions and migrates when necessary.
  */
 public class MigrationHandler {
-    private static final Log __log = LogFactory.getLog(MigrationHandler.class);
+    private static final Logger __log = LoggerFactory.getLogger(MigrationHandler.class);
 
     public static final int CURRENT_SCHEMA_VERSION = 7;
 
diff --git a/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/migration/OutstandingRequestsMigration.java b/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/migration/OutstandingRequestsMigration.java
index 232add8..8883033 100644
--- a/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/migration/OutstandingRequestsMigration.java
+++ b/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/migration/OutstandingRequestsMigration.java
@@ -25,8 +25,8 @@
 import java.util.Collection;
 import java.util.Set;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.dao.BpelDAOConnection;
 import org.apache.ode.bpel.dao.ProcessDAO;
 import org.apache.ode.bpel.dao.ProcessInstanceDAO;
@@ -40,7 +40,7 @@
  *
  */
 public class OutstandingRequestsMigration implements Migration {
-    private static Log __log = LogFactory.getLog(OutstandingRequestsMigration.class);
+    private static Logger __log = LoggerFactory.getLogger(OutstandingRequestsMigration.class);
 
     public boolean migrate(Set<BpelProcess> registeredProcesses, BpelDAOConnection connection) {
         boolean migrationResult = true;
diff --git a/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/replayer/Replayer.java b/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/replayer/Replayer.java
index 8ed99d4..424a1fd 100644
--- a/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/replayer/Replayer.java
+++ b/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/replayer/Replayer.java
@@ -28,8 +28,8 @@
 import java.util.List;
 import java.util.Set;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.dao.BpelDAOConnection;
 import org.apache.ode.bpel.dao.MessageExchangeDAO;
 import org.apache.ode.bpel.dao.ProcessDAO;
@@ -66,7 +66,7 @@
  *
  */
 public class Replayer {
-    private static final Log __log = LogFactory.getLog(Replayer.class);
+    private static final Logger __log = LoggerFactory.getLogger(Replayer.class);
     public static ThreadLocal<Replayer> replayer = new ThreadLocal<Replayer>();
     public ReplayerScheduler scheduler = new ReplayerScheduler();
     public BpelEngineImpl engine = null;
diff --git a/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/replayer/ReplayerBpelRuntimeContextImpl.java b/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/replayer/ReplayerBpelRuntimeContextImpl.java
index 206695d..ef7487d 100644
--- a/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/replayer/ReplayerBpelRuntimeContextImpl.java
+++ b/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/replayer/ReplayerBpelRuntimeContextImpl.java
@@ -24,8 +24,8 @@
 import javax.wsdl.Operation;
 import javax.xml.namespace.QName;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.common.FaultException;
 import org.apache.ode.bpel.dao.MessageDAO;
 import org.apache.ode.bpel.dao.MessageExchangeDAO;
@@ -70,7 +70,7 @@
  *
  */
 public class ReplayerBpelRuntimeContextImpl extends BpelRuntimeContextImpl {
-    private static final Log __log = LogFactory.getLog(ReplayerBpelRuntimeContextImpl.class);
+    private static final Logger __log = LoggerFactory.getLogger(ReplayerBpelRuntimeContextImpl.class);
 
     private ReplayerContext replayerContext;
 
diff --git a/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/replayer/ReplayerContext.java b/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/replayer/ReplayerContext.java
index 98c7aac..3447fa0 100644
--- a/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/replayer/ReplayerContext.java
+++ b/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/replayer/ReplayerContext.java
@@ -35,8 +35,8 @@
 import net.sf.saxon.xqj.SaxonXQConnection;
 import net.sf.saxon.xqj.SaxonXQDataSource;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.dao.ProcessDAO;
 import org.apache.ode.bpel.dao.ProcessInstanceDAO;
 import org.apache.ode.bpel.engine.BpelEngineImpl;
@@ -67,7 +67,7 @@
  *
  */
 public class ReplayerContext {
-    private static final Log __log = LogFactory.getLog(ReplayerContext.class);
+    private static final Logger __log = LoggerFactory.getLogger(ReplayerContext.class);
 
     public ReplayerScheduler scheduler;
 
@@ -182,7 +182,6 @@
                 return answer;
             } catch (Exception e) {
                 __log.error("", e);
-                __log.error(e.getCause());
                 throw new IllegalStateException(e.getMessage());
             }
         }
diff --git a/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/replayer/ReplayerScheduler.java b/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/replayer/ReplayerScheduler.java
index 5340b41..b965bf9 100644
--- a/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/replayer/ReplayerScheduler.java
+++ b/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/replayer/ReplayerScheduler.java
@@ -24,8 +24,8 @@
 import java.util.concurrent.Callable;
 import java.util.concurrent.Future;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.dao.BpelDAOConnection;
 import org.apache.ode.bpel.iapi.ContextException;
 import org.apache.ode.bpel.iapi.Scheduler;
@@ -37,7 +37,7 @@
  *
  */
 public class ReplayerScheduler implements Scheduler {
-    private static final Log __log = LogFactory.getLog(ReplayerScheduler.class);
+    private static final Logger __log = LoggerFactory.getLogger(ReplayerScheduler.class);
 
     public Replayer replayer;
 
diff --git a/bpel-runtime/src/main/java/org/apache/ode/bpel/extvar/jdbc/DbExternalVariable.java b/bpel-runtime/src/main/java/org/apache/ode/bpel/extvar/jdbc/DbExternalVariable.java
index 8f14f87..cb9e769 100644
--- a/bpel-runtime/src/main/java/org/apache/ode/bpel/extvar/jdbc/DbExternalVariable.java
+++ b/bpel-runtime/src/main/java/org/apache/ode/bpel/extvar/jdbc/DbExternalVariable.java
@@ -30,8 +30,8 @@
 import javax.sql.DataSource;
 import javax.xml.namespace.QName;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.utils.DOMUtils;
 import org.apache.ode.utils.GUID;
 import org.apache.ode.utils.ISO8601DateParser;
@@ -48,7 +48,7 @@
  * @author Maciej Szefler <mszefler at gmail dot com>
  */
 class DbExternalVariable {
-    private static final Log __log = LogFactory.getLog(DbExternalVariable.class);
+    private static final Logger __log = LoggerFactory.getLogger(DbExternalVariable.class);
 
     private static final String XSI_NS = "http://www.w3.org/2001/XMLSchema-instance";
 
diff --git a/bpel-runtime/src/main/java/org/apache/ode/bpel/extvar/jdbc/JdbcExternalVariableModule.java b/bpel-runtime/src/main/java/org/apache/ode/bpel/extvar/jdbc/JdbcExternalVariableModule.java
index bced44f..d77899f 100644
--- a/bpel-runtime/src/main/java/org/apache/ode/bpel/extvar/jdbc/JdbcExternalVariableModule.java
+++ b/bpel-runtime/src/main/java/org/apache/ode/bpel/extvar/jdbc/JdbcExternalVariableModule.java
@@ -35,8 +35,8 @@
 import javax.swing.text.StyleContext.SmallAttributeSet;
 import javax.xml.namespace.QName;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.extvar.jdbc.DbExternalVariable.Column;
 import org.apache.ode.bpel.extvar.jdbc.DbExternalVariable.RowKey;
 import org.apache.ode.bpel.extvar.jdbc.DbExternalVariable.RowVal;
@@ -49,7 +49,7 @@
 
 public class JdbcExternalVariableModule implements ExternalVariableModule {
 
-    private static final Log __log = LogFactory.getLog(JdbcExternalVariableModule.class);
+    private static final Logger __log = LoggerFactory.getLogger(JdbcExternalVariableModule.class);
 
     public static final String JDBC_NS = "http://ode.apache.org/externalVariables/jdbc";
 
diff --git a/bpel-runtime/src/main/java/org/apache/ode/bpel/extvar/jdbc/RowSubset.java b/bpel-runtime/src/main/java/org/apache/ode/bpel/extvar/jdbc/RowSubset.java
index 81dba75..ca94764 100644
--- a/bpel-runtime/src/main/java/org/apache/ode/bpel/extvar/jdbc/RowSubset.java
+++ b/bpel-runtime/src/main/java/org/apache/ode/bpel/extvar/jdbc/RowSubset.java
@@ -26,12 +26,12 @@
 import java.util.HashMap;
 import java.util.List;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.extvar.jdbc.DbExternalVariable.Column;;
 
 class RowSubset extends ArrayList<Object> {
-    private static final Log LOG = LogFactory.getLog(RowSubset.class);
+    private static final Logger LOG = LoggerFactory.getLogger(RowSubset.class);
 
     private static final long serialVersionUID = 1L;
 
@@ -109,4 +109,4 @@
         buf.append(")");
         return buf.toString();
     }
-}
\ No newline at end of file
+}
diff --git a/bpel-runtime/src/main/java/org/apache/ode/bpel/memdao/BpelDAOConnectionImpl.java b/bpel-runtime/src/main/java/org/apache/ode/bpel/memdao/BpelDAOConnectionImpl.java
index eeea97e..60e2328 100644
--- a/bpel-runtime/src/main/java/org/apache/ode/bpel/memdao/BpelDAOConnectionImpl.java
+++ b/bpel-runtime/src/main/java/org/apache/ode/bpel/memdao/BpelDAOConnectionImpl.java
@@ -18,8 +18,8 @@
  */
 package org.apache.ode.bpel.memdao;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.common.BpelEventFilter;
 import org.apache.ode.bpel.common.Filter;
 import org.apache.ode.bpel.common.InstanceFilter;
@@ -56,7 +56,7 @@
  * A very simple, in-memory implementation of the {@link BpelDAOConnection} interface.
  */
 class BpelDAOConnectionImpl implements BpelDAOConnection {
-    private static final Log __log = LogFactory.getLog(BpelDAOConnectionImpl.class);
+    private static final Logger __log = LoggerFactory.getLogger(BpelDAOConnectionImpl.class);
 
     private Scheduler _scheduler;
     private Map<QName, ProcessDaoImpl> _store;
diff --git a/bpel-runtime/src/main/java/org/apache/ode/bpel/memdao/CorrelatorDaoImpl.java b/bpel-runtime/src/main/java/org/apache/ode/bpel/memdao/CorrelatorDaoImpl.java
index 42d38d3..c090b53 100644
--- a/bpel-runtime/src/main/java/org/apache/ode/bpel/memdao/CorrelatorDaoImpl.java
+++ b/bpel-runtime/src/main/java/org/apache/ode/bpel/memdao/CorrelatorDaoImpl.java
@@ -18,8 +18,8 @@
  */
 package org.apache.ode.bpel.memdao;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.common.CorrelationKey;
 import org.apache.ode.bpel.common.CorrelationKeySet;
 import org.apache.ode.bpel.dao.*;
@@ -33,7 +33,7 @@
  * A very simple, in-memory implementation of the {@link CorrelatorDAO} interface.
  */
 class CorrelatorDaoImpl extends DaoBaseImpl implements CorrelatorDAO {
-    private static final Log __log = LogFactory.getLog(CorrelatorDaoImpl.class);
+    private static final Logger __log = LoggerFactory.getLogger(CorrelatorDaoImpl.class);
 
     private String _correlatorId;
     private List<MsgQueueEntry> _messages;
diff --git a/bpel-runtime/src/main/java/org/apache/ode/bpel/memdao/DaoBaseImpl.java b/bpel-runtime/src/main/java/org/apache/ode/bpel/memdao/DaoBaseImpl.java
index 01cf77e..60040a8 100644
--- a/bpel-runtime/src/main/java/org/apache/ode/bpel/memdao/DaoBaseImpl.java
+++ b/bpel-runtime/src/main/java/org/apache/ode/bpel/memdao/DaoBaseImpl.java
@@ -18,8 +18,8 @@
  */
 package org.apache.ode.bpel.memdao;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.util.Date;
 
@@ -28,7 +28,7 @@
  */
 class DaoBaseImpl {
     @SuppressWarnings("unused")
-    private static final Log __logger = LogFactory.getLog(DaoBaseImpl.class);
+    private static final Logger __logger = LoggerFactory.getLogger(DaoBaseImpl.class);
 
     Date _createTime = new Date();
 
diff --git a/bpel-runtime/src/main/java/org/apache/ode/bpel/memdao/ProcessDaoImpl.java b/bpel-runtime/src/main/java/org/apache/ode/bpel/memdao/ProcessDaoImpl.java
index 4132b40..df63400 100644
--- a/bpel-runtime/src/main/java/org/apache/ode/bpel/memdao/ProcessDaoImpl.java
+++ b/bpel-runtime/src/main/java/org/apache/ode/bpel/memdao/ProcessDaoImpl.java
@@ -29,8 +29,8 @@
 
 import javax.xml.namespace.QName;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.common.CorrelationKey;
 import org.apache.ode.bpel.common.ProcessState;
 import org.apache.ode.bpel.dao.CorrelationSetDAO;
@@ -43,7 +43,7 @@
  * A very simple, in-memory implementation of the {@link ProcessDAO} interface.
  */
 class ProcessDaoImpl extends DaoBaseImpl implements ProcessDAO {
-    private static final Log __log = LogFactory.getLog(ProcessDaoImpl.class);
+    private static final Logger __log = LoggerFactory.getLogger(ProcessDaoImpl.class);
 
     private QName _processId;
     private QName _type;
diff --git a/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/ACTIVITY.java b/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/ACTIVITY.java
index 0982bef..3783bfa 100644
--- a/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/ACTIVITY.java
+++ b/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/ACTIVITY.java
@@ -22,8 +22,8 @@
 import java.util.Collection;
 import java.util.Iterator;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.common.FaultException;
 import org.apache.ode.bpel.evt.ActivityEvent;
 import org.apache.ode.bpel.evt.EventContext;
@@ -44,7 +44,7 @@
  * Base template for activities.
  */
 abstract class ACTIVITY extends BpelJacobRunnable implements IndexedObject {
-    private static final Log __log = LogFactory.getLog(ACTIVITY.class);
+    private static final Logger __log = LoggerFactory.getLogger(ACTIVITY.class);
     protected ActivityInfo _self;
 
     /**
diff --git a/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/ACTIVITYGUARD.java b/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/ACTIVITYGUARD.java
index dd2ee74..f1487f7 100644
--- a/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/ACTIVITYGUARD.java
+++ b/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/ACTIVITYGUARD.java
@@ -25,8 +25,8 @@
 import java.util.Map;
 import java.util.Set;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.common.FaultException;
 import org.apache.ode.bpel.evt.ActivityEnabledEvent;
 import org.apache.ode.bpel.evt.ActivityExecEndEvent;
@@ -57,7 +57,7 @@
 class ACTIVITYGUARD extends ACTIVITY {
     private static final long serialVersionUID = 1L;
 
-    private static final Log __log = LogFactory.getLog(ACTIVITYGUARD.class);
+    private static final Logger __log = LoggerFactory.getLogger(ACTIVITYGUARD.class);
 
     private static final ActivityTemplateFactory __activityTemplateFactory = new ActivityTemplateFactory();
     private OActivity _oactivity;
@@ -221,7 +221,7 @@
                                 linfo.pub.linkStatus(val);
                             } catch (FaultException e) {
                                 linfo.pub.linkStatus(false);
-                                __log.error(e);
+                                __log.error("",e);
                                 if (fault == null)
                                     fault = createFault(e.getQName(),olink.getTransitionCondition());
                             }
diff --git a/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/ASSIGN.java b/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/ASSIGN.java
index 9ed3e4c..0f442b9 100644
--- a/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/ASSIGN.java
+++ b/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/ASSIGN.java
@@ -18,8 +18,8 @@
  */
 package org.apache.ode.bpel.runtime;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.common.FaultException;
 import org.apache.ode.bpel.evt.PartnerLinkModificationEvent;
 import org.apache.ode.bpel.evt.ScopeEvent;
@@ -68,7 +68,7 @@
 class ASSIGN extends ACTIVITY {
     private static final long serialVersionUID = 1L;
 
-    private static final Log __log = LogFactory.getLog(ASSIGN.class);
+    private static final Logger __log = LoggerFactory.getLogger(ASSIGN.class);
 
     private static final ASSIGNMessages __msgs = MessageBundle
             .getMessages(ASSIGNMessages.class);
@@ -118,7 +118,7 @@
         }
     }
 
-    protected Log log() {
+    protected Logger log() {
         return __log;
     }
 
@@ -387,8 +387,7 @@
                 ((VariableModificationEvent)se).setNewValue(lvalue);
             } else {
                 // This really should have been caught by the compiler.
-                __log
-                        .fatal("Message/Non-Message Assignment, should be caught by compiler:"
+                __log.error("Message/Non-Message Assignment, should be caught by compiler:"
                                 + ocopy);
                 throw new FaultException(
                         ocopy.getOwner().getConstants().getQnSelectionFailure(),
diff --git a/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/BpelJacobRunnable.java b/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/BpelJacobRunnable.java
index bf58d75..d87b9b2 100644
--- a/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/BpelJacobRunnable.java
+++ b/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/BpelJacobRunnable.java
@@ -18,8 +18,8 @@
  */
 package org.apache.ode.bpel.runtime;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.common.CorrelationKey;
 import org.apache.ode.bpel.common.FaultException;
 import org.apache.ode.bpel.obj.OBase;
@@ -41,7 +41,7 @@
  * @author Maciej Szefler
  */
 public abstract class BpelJacobRunnable extends JacobRunnable {
-    private static final Log __log = LogFactory.getLog(BpelJacobRunnable.class);
+    private static final Logger __log = LoggerFactory.getLogger(BpelJacobRunnable.class);
 
     protected BpelRuntimeContext getBpelRuntimeContext() {
         BpelRuntimeContext nativeApi = (BpelRuntimeContext) JacobVPU.activeJacobThread().getExtension(BpelRuntimeContext.class);
@@ -49,7 +49,7 @@
         return nativeApi;
     }
 
-    protected Log log() {
+    protected Logger log() {
         return __log;
     }
 
diff --git a/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/EH_ALARM.java b/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/EH_ALARM.java
index 3c5ba32..4a5b161 100644
--- a/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/EH_ALARM.java
+++ b/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/EH_ALARM.java
@@ -22,8 +22,8 @@
 import java.util.HashSet;
 import java.util.Set;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.common.FaultException;
 import org.apache.ode.bpel.explang.EvaluationContext;
 import org.apache.ode.bpel.explang.EvaluationException;
@@ -50,7 +50,7 @@
  */
 class EH_ALARM extends BpelJacobRunnable {
 
-    private static final Log __log = LogFactory.getLog(EH_ALARM.class);
+    private static final Logger __log = LoggerFactory.getLogger(EH_ALARM.class);
 
     private static final long serialVersionUID = 1L;
 
@@ -87,7 +87,7 @@
             } catch (EvaluationException e) {
                 throw new InvalidProcessException(e);
             } catch (FaultException e) {
-                __log.error(e);
+                __log.error("",e);
                 _psc.completed(createFault(e.getQName(),_oalarm.getForExpr()), _comps);
                 return;
             }
@@ -97,7 +97,7 @@
             } catch (EvaluationException e) {
                 throw new InvalidProcessException(e);
             } catch (FaultException e) {
-                __log.error(e);
+                __log.error("",e);
                 _psc.completed(createFault(e.getQName(),_oalarm.getUntilExpr()), _comps);
                 return;
             }
@@ -107,7 +107,7 @@
             } catch (EvaluationException e) {
                 throw new InvalidProcessException(e);
             } catch (FaultException e) {
-                __log.error(e);
+                __log.error("",e);
                 _psc.completed(createFault(e.getQName(),_oalarm.getRepeatExpr()), _comps);
                 return;
             }
@@ -233,7 +233,7 @@
                         } catch (EvaluationException e) {
                             throw new InvalidProcessException(e);
                         } catch (FaultException e) {
-                            __log.error(e);
+                            __log.error("",e);
                             _psc.completed(createFault(e.getQName(),_oalarm.getForExpr()), _comps);
                             return;
                         }
diff --git a/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/EH_EVENT.java b/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/EH_EVENT.java
index 093ab6f..430d942 100644
--- a/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/EH_EVENT.java
+++ b/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/EH_EVENT.java
@@ -21,8 +21,8 @@
 import java.util.HashSet;
 import java.util.Set;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.common.CorrelationKey;
 import org.apache.ode.bpel.common.CorrelationKeySet;
 import org.apache.ode.bpel.common.FaultException;
@@ -49,7 +49,7 @@
 
     private static final long serialVersionUID = 1L;
 
-    private static final Log __log = LogFactory.getLog(EH_EVENT.class);
+    private static final Logger __log = LoggerFactory.getLogger(EH_EVENT.class);
 
     private EventHandlerControl _ehc;
     private Termination _tc;
@@ -136,7 +136,7 @@
                 getBpelRuntimeContext().select(pickResponseChannel, null, false, new Selector[] { selector} );
                 instance(new WAITING(pickResponseChannel));
             } catch(FaultException e){
-                __log.error(e);
+                __log.error("",e);
                 if (_fault == null) {
                     _fault = createFault(e.getQName(), _oevent);
                 }
@@ -243,7 +243,7 @@
                                             se.setLineNo(_oevent.getDebugInfo().getStartLine());
                                         getBpelRuntimeContext().sendEvent(se);
                                     } catch (Exception ex) {
-                                        __log.fatal(ex);
+                                        __log.error("",ex);
                                         throw new InvalidProcessException(ex);
                                     }
                                 }
@@ -281,7 +281,7 @@
                                         _oevent.getOperation().getName(), _oevent.getMessageExchangeId(), mexId);
 
                             } catch (FaultException e) {
-                                __log.error(e);
+                                __log.error("",e);
                                 if (_fault == null) {
                                     _fault = createFault(e.getQName(), _oevent);
                                     terminateActive();
diff --git a/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/EMPTY.java b/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/EMPTY.java
index def3c25..84de5cb 100644
--- a/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/EMPTY.java
+++ b/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/EMPTY.java
@@ -18,8 +18,8 @@
  */
 package org.apache.ode.bpel.runtime;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 
 /**
@@ -27,7 +27,7 @@
  */
 class EMPTY extends ACTIVITY {
     private static final long serialVersionUID = 1L;
-    private static final Log __log = LogFactory.getLog(EMPTY.class);
+    private static final Logger __log = LoggerFactory.getLogger(EMPTY.class);
 
   public EMPTY(ActivityInfo self, ScopeFrame frame, LinkFrame linkFrame) {
     super(self, frame, linkFrame);
diff --git a/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/ExprEvaluationContextImpl.java b/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/ExprEvaluationContextImpl.java
index 51f570b..3ffa761 100644
--- a/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/ExprEvaluationContextImpl.java
+++ b/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/ExprEvaluationContextImpl.java
@@ -24,8 +24,8 @@
 
 import javax.xml.namespace.QName;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.common.FaultException;
 import org.apache.ode.bpel.evt.ScopeEvent;
 import org.apache.ode.bpel.evt.VariableReadEvent;
@@ -47,8 +47,7 @@
  * variables, link statuses, and the like.
  */
 public class ExprEvaluationContextImpl implements EvaluationContext {
-    private static final Log __log = LogFactory
-            .getLog(ExprEvaluationContextImpl.class);
+    private static final Logger __log = LoggerFactory.getLogger(ExprEvaluationContextImpl.class);
 
     private BpelRuntimeContext _native;
 
diff --git a/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/FOREACH.java b/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/FOREACH.java
index 1d1ab61..0fe0232 100644
--- a/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/FOREACH.java
+++ b/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/FOREACH.java
@@ -23,8 +23,8 @@
 import java.util.Iterator;
 import java.util.Set;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.common.FaultException;
 import org.apache.ode.bpel.evar.ExternalVariableModuleException;
 import org.apache.ode.bpel.evt.VariableModificationEvent;
@@ -49,7 +49,7 @@
 public class FOREACH extends ACTIVITY {
 
     private static final long serialVersionUID = 1L;
-    private static final Log __log = LogFactory.getLog(FOREACH.class);
+    private static final Logger __log = LoggerFactory.getLogger(FOREACH.class);
 
     private OForEach _oforEach;
     private Set<ChildInfo> _children = new HashSet<ChildInfo>();
@@ -74,7 +74,7 @@
             }
             _currentCounter = _startCounter;
         } catch (FaultException fe) {
-            __log.error(fe);
+            __log.error("",fe);
             _self.parent.completed(createFault(fe.getQName(), _self.o), _compHandlers);
             return;
         }
diff --git a/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/INVOKE.java b/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/INVOKE.java
index c7398e3..78f3230 100644
--- a/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/INVOKE.java
+++ b/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/INVOKE.java
@@ -23,8 +23,8 @@
 
 import javax.xml.namespace.QName;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.common.FaultException;
 import org.apache.ode.bpel.evar.ExternalVariableModuleException;
 import org.apache.ode.bpel.evt.VariableModificationEvent;
@@ -46,7 +46,7 @@
  */
 public class INVOKE extends ACTIVITY {
     private static final long serialVersionUID = 992248281026821783L;
-    private static final Log __log = LogFactory.getLog(INVOKE.class);
+    private static final Logger __log = LoggerFactory.getLogger(INVOKE.class);
 
     private OInvoke _oinvoke;
     // Records number of invocations on the activity.
@@ -69,12 +69,12 @@
         try {
             outboundMsg = setupOutbound(_oinvoke, _oinvoke.getInitCorrelationsInput(), _oinvoke.getJoinCorrelationsInput());
         } catch (FaultException e) {
-            __log.error(e);
+            __log.error("",e);
             FaultData fault = createFault(e.getQName(), _oinvoke);
             _self.parent.completed(fault, CompensationHandler.emptySet());
             return;
         } catch (ExternalVariableModuleException e) {
-            __log.error(e);
+            __log.error("",e);
             _self.parent.failure(e.toString(), null);
             return;
         }
@@ -202,7 +202,7 @@
                 })));
             }
         } catch (FaultException fault) {
-            __log.error(fault);
+            __log.error("",fault);
             FaultData faultData = createFault(fault.getQName(), _oinvoke, fault.getMessage());
             _self.parent.completed(faultData, CompensationHandler.emptySet());
         }
diff --git a/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/ORDEREDCOMPENSATOR.java b/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/ORDEREDCOMPENSATOR.java
index 79cb1dc..1e1fd70 100644
--- a/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/ORDEREDCOMPENSATOR.java
+++ b/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/ORDEREDCOMPENSATOR.java
@@ -20,8 +20,8 @@
 
 import java.util.List;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.jacob.ReceiveProcess;
 import org.apache.ode.jacob.Synch;
 
@@ -32,7 +32,7 @@
 class ORDEREDCOMPENSATOR extends BpelJacobRunnable  {
     private static final long serialVersionUID = -3181661355085428370L;
 
-    private static final Log __log = LogFactory.getLog(ORDEREDCOMPENSATOR.class);
+    private static final Logger __log = LoggerFactory.getLogger(ORDEREDCOMPENSATOR.class);
 
     private List<CompensationHandler> _compensations;
     private Synch _ret;
@@ -59,7 +59,7 @@
         }
     }
 
-    protected Log log() {
+    protected Logger log() {
         return __log;
     }
 
diff --git a/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/PICK.java b/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/PICK.java
index 90a777a..9525b15 100644
--- a/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/PICK.java
+++ b/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/PICK.java
@@ -26,8 +26,8 @@
 
 import javax.xml.namespace.QName;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.common.CorrelationKey;
 import org.apache.ode.bpel.common.CorrelationKeySet;
 import org.apache.ode.bpel.common.FaultException;
@@ -59,7 +59,7 @@
 class PICK extends ACTIVITY {
     private static final long serialVersionUID = 1L;
 
-    private static final Log __log = LogFactory.getLog(PICK.class);
+    private static final Logger __log = LoggerFactory.getLogger(PICK.class);
 
     private OPickReceive _opick;
 
@@ -113,7 +113,7 @@
             }
             getBpelRuntimeContext().select(pickResponseChannel, timeout, _opick.isCreateInstanceFlag(), selectors);
         } catch (FaultException e) {
-            __log.error(e);
+            __log.error("",e);
             FaultData fault = createFault(e.getQName(), _opick, e.getMessage());
             dpe(_opick.getOutgoingLinks());
             _self.parent.completed(fault, CompensationHandler.emptySet());
@@ -212,7 +212,7 @@
         // to the correct format; but you know what they say, don't trust anyone.
         if (!(onMessage.getVariable().getType() instanceof OMessageVarType)) {
             String errmsg = "Non-message variable for receive: should have been picked up by static analysis.";
-            __log.fatal(errmsg);
+            __log.error(errmsg);
             throw new InvalidProcessException(errmsg);
         }
 
@@ -225,12 +225,12 @@
             Part part = vartype.getParts().get(pName);
             if (part == null) {
                 String errmsg = "Inconsistent WSDL, part " + pName + " not found in message type " + vartype.getMessageType();
-                __log.fatal(errmsg);
+                __log.error(errmsg);
                 throw new InvalidProcessException(errmsg);
             }
             if (msgPart == null) {
                 String errmsg = "Message missing part: " + pName;
-                __log.fatal(errmsg);
+                __log.error(errmsg);
                 throw new InvalidContextException(errmsg);
             }
 
@@ -239,7 +239,7 @@
                 Element e  = DOMUtils.getFirstChildElement(msgPart);
                 if (e == null) {
                     String errmsg = "Message (element) part " + pName + " did not contain child element.";
-                    __log.fatal(errmsg);
+                    __log.error(errmsg);
                     throw new InvalidContextException(errmsg);
                 }
 
@@ -247,7 +247,7 @@
                 if(!qn.equals(ptype.getElementType())) {
                     String errmsg = "Message (element) part " + pName + " did not contain correct child element: expected "
                             + ptype.getElementType() + " but got " + qn;
-                    __log.fatal(errmsg);
+                    __log.error(errmsg);
                     throw new InvalidContextException(errmsg);
                 }
             }
@@ -342,7 +342,7 @@
                                 onMessage.getOperation().getName(), onMessage.getMessageExchangeId(), mexId);
 
                     } catch (FaultException e) {
-                        __log.error(e);
+                        __log.error("",e);
                         fault = createFault(e.getQName(), onMessage);
                         _self.parent.completed(fault, CompensationHandler.emptySet());
                         dpe(onMessage.getActivity());
diff --git a/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/PropertyAliasEvaluationContext.java b/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/PropertyAliasEvaluationContext.java
index c40b07b..a665dc8 100644
--- a/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/PropertyAliasEvaluationContext.java
+++ b/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/PropertyAliasEvaluationContext.java
@@ -23,8 +23,8 @@
 import java.util.Date;
 import java.util.Map;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.common.FaultException;
 import org.apache.ode.bpel.engine.BpelRuntimeContextImpl;
 import org.apache.ode.bpel.explang.EvaluationContext;
@@ -45,7 +45,7 @@
  * Expression language evaluation context used for evaluating property aliases.
  */
 public class PropertyAliasEvaluationContext implements EvaluationContext {
-    private static final Log __log = LogFactory.getLog(PropertyAliasEvaluationContext.class);
+    private static final Logger __log = LoggerFactory.getLogger(PropertyAliasEvaluationContext.class);
     
     private Node _root;
 
diff --git a/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/REPEATUNTIL.java b/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/REPEATUNTIL.java
index 38b9366..7e820da 100644
--- a/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/REPEATUNTIL.java
+++ b/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/REPEATUNTIL.java
@@ -21,8 +21,8 @@
 import java.util.HashSet;
 import java.util.Set;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.common.FaultException;
 import org.apache.ode.bpel.explang.EvaluationException;
 import org.apache.ode.bpel.obj.ORepeatUntil;
@@ -40,7 +40,7 @@
 public class REPEATUNTIL extends ACTIVITY {
     private static final long serialVersionUID = 1L;
 
-    private static final Log __log = LogFactory.getLog(WHILE.class);
+    private static final Logger __log = LoggerFactory.getLogger(WHILE.class);
 
     private Set<CompensationHandler> _compHandlers = new HashSet<CompensationHandler>();
 
@@ -63,7 +63,7 @@
         return "<T:Act:RepeatUntil:" + _self.o + ">";
     }
 
-    protected Log log() {
+    protected Logger log() {
         return __log;
     }
 
@@ -124,7 +124,7 @@
                         try {
                             condResult = checkCondition();
                         } catch (FaultException fe) {
-                            __log.error(fe);
+                            __log.error("",fe);
                             _self.parent.completed(createFault(fe.getQName(), _self.o),_compHandlers);
                             return;
                         }
diff --git a/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/REPLY.java b/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/REPLY.java
index abe0fc1..d23c4f8 100644
--- a/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/REPLY.java
+++ b/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/REPLY.java
@@ -25,14 +25,14 @@
 
 import java.util.Iterator;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
 
 class REPLY extends ACTIVITY {
     private static final long serialVersionUID = 3040651951885161304L;
-    private static final Log __log = LogFactory.getLog(REPLY.class);
+    private static final Logger __log = LoggerFactory.getLogger(REPLY.class);
 
     REPLY(ActivityInfo self, ScopeFrame scopeFrame, LinkFrame linkFrame) {
         super(self, scopeFrame, linkFrame);
@@ -70,7 +70,7 @@
                             oreply.getMessageExchangeId(), (Element)msg,
                             (oreply.getFault() != null) ? oreply.getFault() : null);
         } catch (FaultException e) {
-            __log.error(e);
+            __log.error("",e);
             fault = createFault(e.getQName(), oreply);
         }
 
diff --git a/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/RETHROW.java b/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/RETHROW.java
index f94c39a..075dbe2 100644
--- a/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/RETHROW.java
+++ b/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/RETHROW.java
@@ -18,8 +18,8 @@
  */
 package org.apache.ode.bpel.runtime;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.runtime.channels.FaultData;
 
 
@@ -28,7 +28,7 @@
  */
 class RETHROW extends ACTIVITY {
   private static final long serialVersionUID = -6433171659586530126L;
-  private static final Log __log = LogFactory.getLog(RETHROW.class);
+  private static final Logger __log = LoggerFactory.getLogger(RETHROW.class);
 
   RETHROW(ActivityInfo self, ScopeFrame scopeFrame, LinkFrame linkFrame) {
     super(self, scopeFrame, linkFrame);
diff --git a/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/SCOPE.java b/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/SCOPE.java
index 4a0a7b0..3e751ff 100644
--- a/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/SCOPE.java
+++ b/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/SCOPE.java
@@ -28,8 +28,8 @@
 
 import javax.xml.namespace.QName;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.evt.ScopeCompletionEvent;
 import org.apache.ode.bpel.evt.ScopeFaultEvent;
 import org.apache.ode.bpel.evt.ScopeStartEvent;
@@ -62,7 +62,7 @@
 class SCOPE extends ACTIVITY {
     private static final long serialVersionUID = 6111903798996023525L;
 
-    private static final Log __log = LogFactory.getLog(SCOPE.class);
+    private static final Logger __log = LoggerFactory.getLogger(SCOPE.class);
 
     private OScope _oscope;
     private ActivityInfo _child;
@@ -362,7 +362,7 @@
                                     se.setLineNo(_oscope.getDebugInfo().getStartLine());
                                 sendEvent(se);
                             } catch (Exception ex) {
-                                __log.fatal(ex);
+                                __log.error("",ex);
                                 throw new InvalidProcessException(ex);
                             }
                         }
diff --git a/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/SCOPEACT.java b/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/SCOPEACT.java
index f203e83..4f5c86c 100644
--- a/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/SCOPEACT.java
+++ b/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/SCOPEACT.java
@@ -27,8 +27,8 @@
 import java.util.Map;
 import java.util.Set;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.obj.OLink;
 import org.apache.ode.bpel.obj.OScope;
 import org.apache.ode.bpel.obj.OScope.Variable;
@@ -47,7 +47,7 @@
  * A scope activity. The scope activity creates a new scope frame and proceeeds using the {@link SCOPE} template.
  */
 public class SCOPEACT extends ACTIVITY {
-    private static final Log __log = LogFactory.getLog(SCOPEACT.class);
+    private static final Logger __log = LoggerFactory.getLogger(SCOPEACT.class);
     
     private static final long serialVersionUID = -4593029783757994939L;
 
diff --git a/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/SWITCH.java b/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/SWITCH.java
index 1f291c2..b3b93be 100644
--- a/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/SWITCH.java
+++ b/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/SWITCH.java
@@ -26,8 +26,8 @@
 
 import java.util.Iterator;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 
 /**
@@ -35,7 +35,7 @@
  */
 class SWITCH extends ACTIVITY {
     private static final long serialVersionUID = 1L;
-    private static final Log __log = LogFactory.getLog(SWITCH.class);
+    private static final Logger __log = LoggerFactory.getLogger(SWITCH.class);
 
   public SWITCH(ActivityInfo self, ScopeFrame scopeFrame, LinkFrame linkFrame) {
     super(self, scopeFrame, linkFrame);
@@ -87,4 +87,4 @@
       instance(createChild(child,_scopeFrame,_linkFrame));
     }
   }
-}
\ No newline at end of file
+}
diff --git a/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/ScopeFrame.java b/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/ScopeFrame.java
index 0af1f6d..b7efa6d 100644
--- a/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/ScopeFrame.java
+++ b/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/ScopeFrame.java
@@ -18,8 +18,8 @@
  */
 package org.apache.ode.bpel.runtime;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.common.FaultException;
 import org.apache.ode.bpel.evt.ScopeEvent;
 import org.apache.ode.bpel.iapi.BpelEngineException;
@@ -49,7 +49,7 @@
  */
 class ScopeFrame implements Serializable {
     private static final long serialVersionUID = 1L;
-    private static final Log __log = LogFactory.getLog(ScopeFrame.class);
+    private static final Logger __log = LoggerFactory.getLogger(ScopeFrame.class);
 
     /** The compiled scope representation. */
     final OScope oscope;
diff --git a/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/THROW.java b/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/THROW.java
index 3917837..1d1ac78 100644
--- a/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/THROW.java
+++ b/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/THROW.java
@@ -21,8 +21,8 @@
 import org.apache.ode.bpel.common.FaultException;
 import org.apache.ode.bpel.obj.OThrow;
 import org.apache.ode.bpel.runtime.channels.FaultData;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
@@ -33,7 +33,7 @@
  */
 class THROW extends ACTIVITY {
     private static final long serialVersionUID = 1L;
-    private static final Log __log = LogFactory.getLog(ACTIVITY.class);
+    private static final Logger __log = LoggerFactory.getLogger(ACTIVITY.class);
 
     private OThrow _othrow;
 
@@ -51,7 +51,7 @@
                 fault = createFault(_othrow.getFaultName(), (Element)faultVariable,_othrow.getFaultVariable().getType(),_othrow);
             } catch (FaultException e) {
                 // deal with this as a fault (just not the one we hoped for)
-                __log.error(e);
+                __log.error("",e);
                 fault = createFault(e.getQName(), _othrow);
             }
         }else{
diff --git a/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/WAIT.java b/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/WAIT.java
index 7c40939..411a307 100644
--- a/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/WAIT.java
+++ b/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/WAIT.java
@@ -21,8 +21,8 @@
 import java.util.Calendar;
 import java.util.Date;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.common.FaultException;
 import org.apache.ode.bpel.explang.EvaluationContext;
 import org.apache.ode.bpel.explang.EvaluationException;
@@ -40,7 +40,7 @@
  */
 class WAIT extends ACTIVITY {
     private static final long serialVersionUID = 1L;
-    private static final Log __log = LogFactory.getLog(WAIT.class);
+    private static final Logger __log = LoggerFactory.getLogger(WAIT.class);
 
     WAIT(ActivityInfo self, ScopeFrame scopeFrame, LinkFrame linkFrame) {
         super(self, scopeFrame, linkFrame);
diff --git a/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/WHILE.java b/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/WHILE.java
index c6afa74..4f97fde 100644
--- a/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/WHILE.java
+++ b/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/WHILE.java
@@ -21,8 +21,8 @@
 import java.util.HashSet;
 import java.util.Set;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.common.FaultException;
 import org.apache.ode.bpel.explang.EvaluationException;
 import org.apache.ode.bpel.obj.OScope;
@@ -43,7 +43,7 @@
 class WHILE extends ACTIVITY {
     private static final long serialVersionUID = 1L;
 
-    private static final Log __log = LogFactory.getLog(WHILE.class);
+    private static final Logger __log = LoggerFactory.getLogger(WHILE.class);
 
     private Set<CompensationHandler> _compHandlers = new HashSet<CompensationHandler>();
 
@@ -58,7 +58,7 @@
         try {
             condResult = checkCondition();
         } catch (FaultException fe) {
-            __log.error(fe);
+            __log.error("",fe);
             _self.parent.completed(createFault(fe.getQName(), _self.o),_compHandlers);
             return;
         }
@@ -81,7 +81,7 @@
         return "<T:Act:While:" + _self.o + ">";
     }
 
-    protected Log log() {
+    protected Logger log() {
         return __log;
     }
 
diff --git a/bpel-runtime/src/test/java/org/apache/ode/bpel/elang/xpath20/runtime/XsdTypesTest.java b/bpel-runtime/src/test/java/org/apache/ode/bpel/elang/xpath20/runtime/XsdTypesTest.java
index 60129e5..f86510a 100644
--- a/bpel-runtime/src/test/java/org/apache/ode/bpel/elang/xpath20/runtime/XsdTypesTest.java
+++ b/bpel-runtime/src/test/java/org/apache/ode/bpel/elang/xpath20/runtime/XsdTypesTest.java
@@ -25,20 +25,20 @@
 import net.sf.saxon.Configuration;
 import net.sf.saxon.xpath.XPathFactoryImpl;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.utils.DOMUtils;
 
 import junit.framework.TestCase;
 
 public class XsdTypesTest extends TestCase {
-    private static Log __log = LogFactory.getLog(XsdTypesTest.class);
+    private static Logger __log = LoggerFactory.getLogger(XsdTypesTest.class);
 
     public void testDateTime() throws Exception {
         XPathFactoryImpl xpf = new XPathFactoryImpl();
         JaxpVariableResolver jvr = new JaxpVariableResolver(null, null, xpf.getConfiguration());
         Object o = jvr.getSimpleContent(DOMUtils.stringToDOM("<temporary-simple-type-wrapper>2010-01-25T15:38:54.82Z</temporary-simple-type-wrapper>"), QName.valueOf("{http://www.w3.org/2001/XMLSchema}dateTime"));
-        __log.debug(o);
+        __log.debug("",o);
         assertTrue(o.toString().contains("2010-01-25T15:38:54.82Z"));
     }
 
@@ -46,7 +46,7 @@
         XPathFactoryImpl xpf = new XPathFactoryImpl();
         JaxpVariableResolver jvr = new JaxpVariableResolver(null, null, xpf.getConfiguration());
         Object o = jvr.getSimpleContent(DOMUtils.stringToDOM("<temporary-simple-type-wrapper></temporary-simple-type-wrapper>"), QName.valueOf("{http://www.w3.org/2001/XMLSchema}dateTime"));
-        __log.debug(o);
+        __log.debug("",o);
         assertTrue(o.toString().equals(""));
     }
 }
diff --git a/bpel-runtime/src/test/resources/log4j2.xml b/bpel-runtime/src/test/resources/log4j2.xml
new file mode 100644
index 0000000..9f6bc53
--- /dev/null
+++ b/bpel-runtime/src/test/resources/log4j2.xml
@@ -0,0 +1,37 @@
+<Configuration>
+    <Appenders>
+        <File name="FILE" fileName="target/test/test.log" append="false">
+            <PatternLayout pattern="%d{ABSOLUTE} %-5p [%c{1}] %m%n"/>
+        </File>
+        <Console name="STDOUT" target="SYSTEM_OUT">
+            <PatternLayout pattern="%d{ABSOLUTE} %-5p [%c{1}] %m%n"/>
+        </Console>
+        <Async name="Async">
+            <AppenderRef ref="FILE"/>
+            <AppenderRef ref="STDOUT"/>
+        </Async>
+    </Appenders>
+
+    <Loggers>
+        <Logger name="org.apache.ode" level="info" additivity="false">
+            <AppenderRef ref="FILE"/>
+        </Logger>
+        <Logger name="org.apache.axis2" level="info" additivity="false">
+            <AppenderRef ref="FILE"/>
+        </Logger>
+       <Logger name="org.hibernate" level="warn" additivity="false">
+            <AppenderRef ref="FILE"/>
+        </Logger>
+        <Logger name="org.apache.openjpa" level="warn" additivity="false">
+            <AppenderRef ref="FILE"/>
+        </Logger>
+        <Logger name="org.springframework" level="error" additivity="false">
+            <AppenderRef ref="FILE"/>
+        </Logger>
+
+        <Root level="info">
+            <AppenderRef ref="Async"/>
+        </Root>
+    </Loggers>
+
+</Configuration>
diff --git a/bpel-store/src/main/java/org/apache/ode/store/ClusterProcessStoreImpl.java b/bpel-store/src/main/java/org/apache/ode/store/ClusterProcessStoreImpl.java
index d701e23..207c9df 100644
--- a/bpel-store/src/main/java/org/apache/ode/store/ClusterProcessStoreImpl.java
+++ b/bpel-store/src/main/java/org/apache/ode/store/ClusterProcessStoreImpl.java
@@ -18,8 +18,8 @@
  */
 package org.apache.ode.store;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.clapi.ClusterManager;
 import org.apache.ode.bpel.clapi.ClusterProcessStore;
 import org.apache.ode.bpel.clapi.ProcessStoreDeployedEvent;
@@ -38,7 +38,7 @@
 import java.util.regex.Pattern;
 
 public class ClusterProcessStoreImpl extends ProcessStoreImpl implements ClusterProcessStore {
-    private static final Log __log = LogFactory.getLog(ClusterProcessStoreImpl.class);
+    private static final Logger __log = LoggerFactory.getLogger(ClusterProcessStoreImpl.class);
 
     private ClusterManager _clusterManager;
     private  ProcessStoreDeployedEvent deployedEvent;
diff --git a/bpel-store/src/main/java/org/apache/ode/store/DeploymentUnitDir.java b/bpel-store/src/main/java/org/apache/ode/store/DeploymentUnitDir.java
index 3c5e577..b8a6d16 100644
--- a/bpel-store/src/main/java/org/apache/ode/store/DeploymentUnitDir.java
+++ b/bpel-store/src/main/java/org/apache/ode/store/DeploymentUnitDir.java
@@ -37,8 +37,8 @@
 import javax.wsdl.xml.WSDLReader;
 import javax.xml.namespace.QName;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.compiler.BpelC;
 import org.apache.ode.bpel.compiler.BpelCompiler;
 import org.apache.ode.bpel.compiler.DefaultResourceFinder;
@@ -71,7 +71,7 @@
 class DeploymentUnitDir {
 
 
-    private static Log __log = LogFactory.getLog(DeploymentUnitDir.class);
+    private static Logger __log = LoggerFactory.getLogger(DeploymentUnitDir.class);
 
     private String _name;
     private File _duDirectory;
diff --git a/bpel-store/src/main/java/org/apache/ode/store/DocumentRegistry.java b/bpel-store/src/main/java/org/apache/ode/store/DocumentRegistry.java
index 7467d6f..49066ef 100644
--- a/bpel-store/src/main/java/org/apache/ode/store/DocumentRegistry.java
+++ b/bpel-store/src/main/java/org/apache/ode/store/DocumentRegistry.java
@@ -22,8 +22,8 @@
 
 import javax.xml.namespace.QName;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.compiler.api.CompilationException;
 import org.apache.ode.bpel.compiler.wsdl.Definition4BPEL;
 
@@ -31,7 +31,7 @@
  * A parsed collection of WSDL definitions, including BPEL-specific extensions.
  */
 public class DocumentRegistry {
-    private static final Log __log = LogFactory.getLog(DocumentRegistry.class);
+    private static final Logger __log = LoggerFactory.getLogger(DocumentRegistry.class);
 
     private final ArrayList<Definition4BPEL> _definitions = new ArrayList<Definition4BPEL>();
 
diff --git a/bpel-store/src/main/java/org/apache/ode/store/ProcessCleanupConfImpl.java b/bpel-store/src/main/java/org/apache/ode/store/ProcessCleanupConfImpl.java
index c73ced0..12eb267 100644
--- a/bpel-store/src/main/java/org/apache/ode/store/ProcessCleanupConfImpl.java
+++ b/bpel-store/src/main/java/org/apache/ode/store/ProcessCleanupConfImpl.java
@@ -24,15 +24,15 @@
 import java.util.List;
 import java.util.Set;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.dd.TCleanup;
 import org.apache.ode.bpel.dd.TDeployment;
 import org.apache.ode.bpel.iapi.ContextException;
 import org.apache.ode.bpel.iapi.ProcessConf.CLEANUP_CATEGORY;
 
 public class ProcessCleanupConfImpl {
-    protected static Log __log = LogFactory.getLog(ProcessCleanupConfImpl.class);
+    protected static Logger __log = LoggerFactory.getLogger(ProcessCleanupConfImpl.class);
 
     private final Set<CLEANUP_CATEGORY> successCategories = EnumSet.noneOf(CLEANUP_CATEGORY.class);
     private final Set<CLEANUP_CATEGORY> failureCategories = EnumSet.noneOf(CLEANUP_CATEGORY.class);
diff --git a/bpel-store/src/main/java/org/apache/ode/store/ProcessConfImpl.java b/bpel-store/src/main/java/org/apache/ode/store/ProcessConfImpl.java
index a0770e9..7209b0c 100644
--- a/bpel-store/src/main/java/org/apache/ode/store/ProcessConfImpl.java
+++ b/bpel-store/src/main/java/org/apache/ode/store/ProcessConfImpl.java
@@ -40,8 +40,8 @@
 import javax.wsdl.Definition;
 import javax.xml.namespace.QName;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.activityRecovery.FailureHandlingDocument.FailureHandling;
 import org.apache.ode.bpel.dd.TCleanup;
 import org.apache.ode.bpel.dd.TDeployment;
@@ -78,7 +78,7 @@
  * @author mriou <mriou at apache dot org>
  */
 public class ProcessConfImpl implements ProcessConf {
-    private static final Log __log = LogFactory.getLog(ProcessConfImpl.class);
+    private static final Logger __log = LoggerFactory.getLogger(ProcessConfImpl.class);
 
     private final Date _deployDate;
     private File _configDir;
@@ -491,7 +491,7 @@
                 if(it.hasNext()) msg.append(", ");
             }
             msg.append("}");
-            __log.debug(msg);
+            __log.debug(msg.toString());
         }
         return prop;
     }
diff --git a/bpel-store/src/main/java/org/apache/ode/store/ProcessStoreImpl.java b/bpel-store/src/main/java/org/apache/ode/store/ProcessStoreImpl.java
index 05252a1..00a7c14 100644
--- a/bpel-store/src/main/java/org/apache/ode/store/ProcessStoreImpl.java
+++ b/bpel-store/src/main/java/org/apache/ode/store/ProcessStoreImpl.java
@@ -18,8 +18,8 @@
  */
 package org.apache.ode.store;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.compiler.api.CompilationException;
 import org.apache.ode.bpel.dd.DeployDocument;
 import org.apache.ode.bpel.dd.TDeployment;
@@ -65,7 +65,7 @@
  */
 public class ProcessStoreImpl implements ProcessStore {
 
-    private static final Log __log = LogFactory.getLog(ProcessStoreImpl.class);
+    private static final Logger __log = LoggerFactory.getLogger(ProcessStoreImpl.class);
 
     private static final Messages __msgs = MessageBundle.getMessages(Messages.class);
 
diff --git a/bpel-store/src/main/java/org/apache/ode/store/hib/ConfStoreConnectionHib.java b/bpel-store/src/main/java/org/apache/ode/store/hib/ConfStoreConnectionHib.java
index a7c7099..22c91a6 100644
--- a/bpel-store/src/main/java/org/apache/ode/store/hib/ConfStoreConnectionHib.java
+++ b/bpel-store/src/main/java/org/apache/ode/store/hib/ConfStoreConnectionHib.java
@@ -18,8 +18,8 @@
  */
 package org.apache.ode.store.hib;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.store.ConfStoreConnection;
 import org.apache.ode.store.DeploymentUnitDAO;
 import org.apache.ode.store.ProcessConfDAO;
@@ -40,7 +40,7 @@
  */
 public class ConfStoreConnectionHib implements ConfStoreConnection {
 
-    private static final Log __log = LogFactory.getLog(ConfStoreConnectionHib.class);
+    private static final Logger __log = LoggerFactory.getLogger(ConfStoreConnectionHib.class);
     private Session _session;
 
     static final ThreadLocal<Session> _current = new ThreadLocal<Session>();
diff --git a/bpel-store/src/main/java/org/apache/ode/store/hib/DbConfStoreConnectionFactory.java b/bpel-store/src/main/java/org/apache/ode/store/hib/DbConfStoreConnectionFactory.java
index db4e9d0..fec2d30 100644
--- a/bpel-store/src/main/java/org/apache/ode/store/hib/DbConfStoreConnectionFactory.java
+++ b/bpel-store/src/main/java/org/apache/ode/store/hib/DbConfStoreConnectionFactory.java
@@ -29,8 +29,8 @@
 import javax.sql.DataSource;
 import javax.transaction.TransactionManager;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.iapi.BpelEngineException;
 import org.apache.ode.daohib.HibernateTransactionManagerLookup;
 import org.apache.ode.daohib.SessionManager;
@@ -47,7 +47,7 @@
 import org.hibernate.dialect.Dialect;
 
 public class DbConfStoreConnectionFactory implements ConfStoreConnectionFactory {
-    private static final Log __log = LogFactory.getLog(DbConfStoreConnectionFactory.class);
+    private static final Logger __log = LoggerFactory.getLogger(DbConfStoreConnectionFactory.class);
 
     private static final Messages __msgs = MessageBundle.getMessages(Messages.class);
 
@@ -112,7 +112,7 @@
             Object txFact = txFactClass.newInstance();
             _txMgr = (TransactionManager) txFactClass.getMethod("getTransactionManager", (Class[]) null).invoke(txFact);
         } catch (Exception e) {
-            __log.fatal("Couldn't initialize a transaction manager with factory: " + txFactoryClassName, e);
+            __log.error("Couldn't initialize a transaction manager with factory: " + txFactoryClassName, e);
             throw new RuntimeException("Couldn't initialize a transaction manager with factory: " + txFactoryClassName, e);
         }
     }
diff --git a/bpel-store/src/main/java/org/apache/ode/store/jpa/ConfStoreConnectionJpa.java b/bpel-store/src/main/java/org/apache/ode/store/jpa/ConfStoreConnectionJpa.java
index 72a9df9..1fd54ec 100644
--- a/bpel-store/src/main/java/org/apache/ode/store/jpa/ConfStoreConnectionJpa.java
+++ b/bpel-store/src/main/java/org/apache/ode/store/jpa/ConfStoreConnectionJpa.java
@@ -19,8 +19,8 @@
 
 package org.apache.ode.store.jpa;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.store.ConfStoreConnection;
 import org.apache.ode.store.DeploymentUnitDAO;
 
@@ -34,7 +34,7 @@
  * @author Matthieu Riou <mriou at apache dot org>
  */
 public class ConfStoreConnectionJpa implements ConfStoreConnection {
-    private static Log LOG = LogFactory.getLog(ConfStoreConnectionJpa.class);
+    private static Logger LOG = LoggerFactory.getLogger(ConfStoreConnectionJpa.class);
 
     private EntityManager _em;
     static final ThreadLocal<EntityManager> _current = new ThreadLocal<EntityManager>();
diff --git a/bpel-store/src/main/java/org/apache/ode/store/jpa/DbConfStoreConnectionFactory.java b/bpel-store/src/main/java/org/apache/ode/store/jpa/DbConfStoreConnectionFactory.java
index 407e18a..91ef7bf 100644
--- a/bpel-store/src/main/java/org/apache/ode/store/jpa/DbConfStoreConnectionFactory.java
+++ b/bpel-store/src/main/java/org/apache/ode/store/jpa/DbConfStoreConnectionFactory.java
@@ -19,8 +19,8 @@
 
 package org.apache.ode.store.jpa;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.dao.jpa.JpaTxMgrProvider;
 import org.apache.ode.store.ConfStoreConnection;
 import org.apache.ode.store.ConfStoreConnectionFactory;
@@ -37,7 +37,7 @@
  * @author Matthieu Riou <mriou at apache dot org>
  */
 public class DbConfStoreConnectionFactory implements ConfStoreConnectionFactory {
-    private static final Log __log = LogFactory.getLog(DbConfStoreConnectionFactory.class);
+    private static final Logger __log = LoggerFactory.getLogger(DbConfStoreConnectionFactory.class);
 
     private DataSource _ds;
     private EntityManagerFactory _emf;
@@ -116,8 +116,8 @@
             Object txFact = txFactClass.newInstance();
             _txMgr = (TransactionManager) txFactClass.getMethod("getTransactionManager", (Class[]) null).invoke(txFact);
         } catch (Exception e) {
-            __log.fatal("Couldn't initialize a transaction manager with factory: " + txFactoryClassName, e);
+            __log.error("Couldn't initialize a transaction manager with factory: " + txFactoryClassName, e);
             throw new RuntimeException("Couldn't initialize a transaction manager with factory: " + txFactoryClassName, e);
         }
     }
-}
\ No newline at end of file
+}
diff --git a/bpel-store/src/test/resources/log4j2.xml b/bpel-store/src/test/resources/log4j2.xml
new file mode 100644
index 0000000..9f6bc53
--- /dev/null
+++ b/bpel-store/src/test/resources/log4j2.xml
@@ -0,0 +1,37 @@
+<Configuration>
+    <Appenders>
+        <File name="FILE" fileName="target/test/test.log" append="false">
+            <PatternLayout pattern="%d{ABSOLUTE} %-5p [%c{1}] %m%n"/>
+        </File>
+        <Console name="STDOUT" target="SYSTEM_OUT">
+            <PatternLayout pattern="%d{ABSOLUTE} %-5p [%c{1}] %m%n"/>
+        </Console>
+        <Async name="Async">
+            <AppenderRef ref="FILE"/>
+            <AppenderRef ref="STDOUT"/>
+        </Async>
+    </Appenders>
+
+    <Loggers>
+        <Logger name="org.apache.ode" level="info" additivity="false">
+            <AppenderRef ref="FILE"/>
+        </Logger>
+        <Logger name="org.apache.axis2" level="info" additivity="false">
+            <AppenderRef ref="FILE"/>
+        </Logger>
+       <Logger name="org.hibernate" level="warn" additivity="false">
+            <AppenderRef ref="FILE"/>
+        </Logger>
+        <Logger name="org.apache.openjpa" level="warn" additivity="false">
+            <AppenderRef ref="FILE"/>
+        </Logger>
+        <Logger name="org.springframework" level="error" additivity="false">
+            <AppenderRef ref="FILE"/>
+        </Logger>
+
+        <Root level="info">
+            <AppenderRef ref="Async"/>
+        </Root>
+    </Loggers>
+
+</Configuration>
diff --git a/bpel-test/src/main/java/org/apache/ode/test/BPELTestAbstract.java b/bpel-test/src/main/java/org/apache/ode/test/BPELTestAbstract.java
index 00bdf7d..062b95f 100644
--- a/bpel-test/src/main/java/org/apache/ode/test/BPELTestAbstract.java
+++ b/bpel-test/src/main/java/org/apache/ode/test/BPELTestAbstract.java
@@ -18,8 +18,8 @@
  */
 package org.apache.ode.test;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.common.evt.DebugBpelEventListener;
 import org.apache.ode.bpel.dao.BpelDAOConnectionFactory;
 import org.apache.ode.bpel.engine.BpelServerImpl;
@@ -61,7 +61,7 @@
 import java.util.regex.Pattern;
 
 public abstract class BPELTestAbstract {
-    private static final Log log = LogFactory.getLog(BPELTestAbstract.class);
+    private static final Logger log = LoggerFactory.getLogger(BPELTestAbstract.class);
     public static final long WAIT_BEFORE_INVOKE_TIMEOUT = 2000;
 
     private static final String SHOW_EVENTS_ON_CONSOLE = "no";
diff --git a/bpel-test/src/test/resources/log4j2.xml b/bpel-test/src/test/resources/log4j2.xml
new file mode 100644
index 0000000..9f6bc53
--- /dev/null
+++ b/bpel-test/src/test/resources/log4j2.xml
@@ -0,0 +1,37 @@
+<Configuration>
+    <Appenders>
+        <File name="FILE" fileName="target/test/test.log" append="false">
+            <PatternLayout pattern="%d{ABSOLUTE} %-5p [%c{1}] %m%n"/>
+        </File>
+        <Console name="STDOUT" target="SYSTEM_OUT">
+            <PatternLayout pattern="%d{ABSOLUTE} %-5p [%c{1}] %m%n"/>
+        </Console>
+        <Async name="Async">
+            <AppenderRef ref="FILE"/>
+            <AppenderRef ref="STDOUT"/>
+        </Async>
+    </Appenders>
+
+    <Loggers>
+        <Logger name="org.apache.ode" level="info" additivity="false">
+            <AppenderRef ref="FILE"/>
+        </Logger>
+        <Logger name="org.apache.axis2" level="info" additivity="false">
+            <AppenderRef ref="FILE"/>
+        </Logger>
+       <Logger name="org.hibernate" level="warn" additivity="false">
+            <AppenderRef ref="FILE"/>
+        </Logger>
+        <Logger name="org.apache.openjpa" level="warn" additivity="false">
+            <AppenderRef ref="FILE"/>
+        </Logger>
+        <Logger name="org.springframework" level="error" additivity="false">
+            <AppenderRef ref="FILE"/>
+        </Logger>
+
+        <Root level="info">
+            <AppenderRef ref="Async"/>
+        </Root>
+    </Loggers>
+
+</Configuration>
diff --git a/clustering/src/main/java/org/apache/ode/clustering/hazelcast/HazelcastClusterImpl.java b/clustering/src/main/java/org/apache/ode/clustering/hazelcast/HazelcastClusterImpl.java
index 4c5cad5..d969666 100644
--- a/clustering/src/main/java/org/apache/ode/clustering/hazelcast/HazelcastClusterImpl.java
+++ b/clustering/src/main/java/org/apache/ode/clustering/hazelcast/HazelcastClusterImpl.java
@@ -38,8 +38,8 @@
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import org.apache.ode.bpel.clapi.*;
 
@@ -47,7 +47,7 @@
  * This class implements necessary methods to build the cluster using hazelcast
  */
 public class HazelcastClusterImpl implements ClusterManager, ProcessStoreClusterListener {
-    private static final Log __log = LogFactory.getLog(HazelcastClusterImpl.class);
+    private static final Logger __log = LoggerFactory.getLogger(HazelcastClusterImpl.class);
 
     private HazelcastInstance _hazelcastInstance;
     private boolean isMaster = false;
@@ -88,7 +88,7 @@
                     Config config = loadConfig(hzXml);
                     _hazelcastInstance = Hazelcast.newHazelcastInstance(config);
                 } catch (FileNotFoundException fnf) {
-                    __log.error(fnf);
+                    __log.error("",fnf);
                 }
         }
 
diff --git a/clustering/src/main/java/org/apache/ode/clustering/hazelcast/HazelcastDeploymentLock.java b/clustering/src/main/java/org/apache/ode/clustering/hazelcast/HazelcastDeploymentLock.java
index b753305..2d22e8a 100644
--- a/clustering/src/main/java/org/apache/ode/clustering/hazelcast/HazelcastDeploymentLock.java
+++ b/clustering/src/main/java/org/apache/ode/clustering/hazelcast/HazelcastDeploymentLock.java
@@ -21,13 +21,13 @@
 import com.hazelcast.core.IMap;
 import org.apache.ode.bpel.clapi.ClusterLock;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.util.concurrent.TimeUnit;
 
 public class HazelcastDeploymentLock implements ClusterLock<String>{
-    private static final Log __log = LogFactory.getLog(HazelcastDeploymentLock.class);
+    private static final Logger __log = LoggerFactory.getLogger(HazelcastDeploymentLock.class);
 
     private IMap<String, String> _lock_map;
 
diff --git a/clustering/src/main/java/org/apache/ode/clustering/hazelcast/HazelcastInstanceLock.java b/clustering/src/main/java/org/apache/ode/clustering/hazelcast/HazelcastInstanceLock.java
index 8ac11f8..06a686f 100644
--- a/clustering/src/main/java/org/apache/ode/clustering/hazelcast/HazelcastInstanceLock.java
+++ b/clustering/src/main/java/org/apache/ode/clustering/hazelcast/HazelcastInstanceLock.java
@@ -23,11 +23,11 @@
 
 import java.util.concurrent.TimeUnit;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class HazelcastInstanceLock implements ClusterLock<Long> {
-    private static final Log __log = LogFactory.getLog(HazelcastInstanceLock.class);
+    private static final Logger __log = LoggerFactory.getLogger(HazelcastInstanceLock.class);
 
     private IMap<Long, Long> _lock_map;
 
diff --git a/dao-hibernate/src/main/java/org/apache/ode/daohib/NativeHiLoGenerator.java b/dao-hibernate/src/main/java/org/apache/ode/daohib/NativeHiLoGenerator.java
index 1a0cd70..2d9661a 100644
--- a/dao-hibernate/src/main/java/org/apache/ode/daohib/NativeHiLoGenerator.java
+++ b/dao-hibernate/src/main/java/org/apache/ode/daohib/NativeHiLoGenerator.java
@@ -33,11 +33,11 @@
 import org.hibernate.id.TableHiLoGenerator;
 import org.hibernate.type.Type;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class NativeHiLoGenerator implements IdentifierGenerator, PersistentIdentifierGenerator, Configurable {
-    private static final Log __log = LogFactory.getLog(NativeHiLoGenerator.class);
+    private static final Logger __log = LoggerFactory.getLogger(NativeHiLoGenerator.class);
     private IdentifierGenerator _proxy;
 
     public NativeHiLoGenerator() {
diff --git a/dao-hibernate/src/main/java/org/apache/ode/daohib/SessionManager.java b/dao-hibernate/src/main/java/org/apache/ode/daohib/SessionManager.java
index c883939..346fc34 100644
--- a/dao-hibernate/src/main/java/org/apache/ode/daohib/SessionManager.java
+++ b/dao-hibernate/src/main/java/org/apache/ode/daohib/SessionManager.java
@@ -18,8 +18,8 @@
  */
 package org.apache.ode.daohib;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.daohib.bpel.hobj.*;
 import org.apache.ode.utils.uuid.UUID;
 import org.hibernate.HibernateException;
@@ -44,7 +44,7 @@
  * managing sessions.
  */
 public class SessionManager {
-    private static final Log __log = LogFactory.getLog(SessionManager.class);
+    private static final Logger __log = LoggerFactory.getLogger(SessionManager.class);
 
     public static final String PROP_GUID = "ode.hibernate.guid";
 
diff --git a/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/BpelDAOConnectionFactoryImpl.java b/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/BpelDAOConnectionFactoryImpl.java
index 2b24c4f..ed8018b 100644
--- a/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/BpelDAOConnectionFactoryImpl.java
+++ b/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/BpelDAOConnectionFactoryImpl.java
@@ -27,8 +27,8 @@
 import javax.sql.DataSource;
 import javax.transaction.TransactionManager;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.dao.BpelDAOConnection;
 import org.apache.ode.bpel.dao.BpelDAOConnectionFactoryJDBC;
 import org.apache.ode.daohib.DataSourceConnectionProvider;
@@ -44,7 +44,7 @@
  * implementation.
  */
 public class BpelDAOConnectionFactoryImpl implements BpelDAOConnectionFactoryJDBC {
-    private static final Log __log = LogFactory.getLog(BpelDAOConnectionFactoryImpl.class);
+    private static final Logger __log = LoggerFactory.getLogger(BpelDAOConnectionFactoryImpl.class);
 
     protected SessionManager _sessionManager;
 
@@ -73,13 +73,13 @@
     public void init(Properties initialProps) {
         if (_ds == null) {
             String errmsg = "setDataSource() not called!";
-            __log.fatal(errmsg);
+            __log.error(errmsg);
             throw new IllegalStateException(errmsg);
         }
 
         if (_tm == null) {
             String errmsg = "setTransactionManager() not called!";
-            __log.fatal(errmsg);
+            __log.error(errmsg);
             throw new IllegalStateException(errmsg);
         }
 
diff --git a/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/BpelDAOConnectionImpl.java b/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/BpelDAOConnectionImpl.java
index 2342cae..589884a 100644
--- a/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/BpelDAOConnectionImpl.java
+++ b/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/BpelDAOConnectionImpl.java
@@ -34,8 +34,8 @@
 
 import javax.xml.namespace.QName;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.common.BpelEventFilter;
 import org.apache.ode.bpel.common.InstanceFilter;
 import org.apache.ode.bpel.common.ProcessState;
@@ -77,7 +77,7 @@
  * Hibernate-based {@link BpelDAOConnection} implementation.
  */
 public class BpelDAOConnectionImpl implements BpelDAOConnection, FilteredInstanceDeletable {
-    private static final Log __log = LogFactory.getLog(BpelDAOConnectionImpl.class);
+    private static final Logger __log = LoggerFactory.getLogger(BpelDAOConnectionImpl.class);
 
     public SessionManager _sm;
 
@@ -238,7 +238,7 @@
             hevent.setData(bos.toByteArray());
         } catch (Throwable ex) {
             // this is really unexpected.
-            __log.fatal("InternalError: BpelEvent serialization failed.", ex);
+            __log.error("InternalError: BpelEvent serialization failed.", ex);
         }
         sess.save(hevent);
     }
@@ -275,7 +275,7 @@
 
             });
         } catch (Exception ex) {
-            __log.fatal("Internal error: unable to transform HBpelEvent", ex);
+            __log.error("Internal error: unable to transform HBpelEvent", ex);
             throw new RuntimeException(ex);
         }
         return ret;
diff --git a/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/CorrelatorDaoImpl.java b/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/CorrelatorDaoImpl.java
index b9bfc4d..c4cbd6c 100644
--- a/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/CorrelatorDaoImpl.java
+++ b/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/CorrelatorDaoImpl.java
@@ -20,8 +20,8 @@
 
 import java.util.*;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.common.CorrelationKey;
 import org.apache.ode.bpel.common.CorrelationKeySet;
 import org.apache.ode.bpel.dao.*;
@@ -45,7 +45,7 @@
  * Hibernate-based {@link CorrelatorDAO} implementation.
  */
 class CorrelatorDaoImpl extends HibernateDao implements CorrelatorDAO {
-    static Log __log = LogFactory.getLog(CorrelatorDaoImpl.class);
+    static Logger __log = LoggerFactory.getLogger(CorrelatorDaoImpl.class);
 
     /** filter for finding a matching selector. */
     private static final String LOCK_SELECTORS = "update from HCorrelatorSelector as hs set hs.lock = hs.lock+1 where hs.processType = :processType";
@@ -282,4 +282,4 @@
         return routes;
     }
 
-}
\ No newline at end of file
+}
diff --git a/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/CriteriaBuilder.java b/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/CriteriaBuilder.java
index c3c3d63..2f349b8 100644
--- a/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/CriteriaBuilder.java
+++ b/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/CriteriaBuilder.java
@@ -27,8 +27,8 @@
 import java.util.List;
 import java.util.Map;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.common.BpelEventFilter;
 import org.apache.ode.bpel.common.Filter;
 import org.apache.ode.bpel.common.InstanceFilter;
@@ -46,7 +46,7 @@
  * {@link org.hibernate.Criteria} objects.
  */
 class CriteriaBuilder {
-    static final Log __log = LogFactory.getLog(CriteriaBuilder.class);
+    static final Logger __log = LoggerFactory.getLogger(CriteriaBuilder.class);
 
     /**
      * Build a HQL query from an instance filter.
diff --git a/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/HibernateDao.java b/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/HibernateDao.java
index 5cb96de..a163fe3 100644
--- a/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/HibernateDao.java
+++ b/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/HibernateDao.java
@@ -20,8 +20,8 @@
 
 import org.apache.ode.daohib.SessionManager;
 import org.apache.ode.daohib.bpel.hobj.HObject;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.hibernate.Query;
 import org.hibernate.Session;
 
@@ -39,7 +39,7 @@
 
     // logger used by subclasses to track entered methods that may trigger sql query
     // we don't use the package name to avoid interferences with other logging info.
-    static final Log logDao = LogFactory.getLog("org.apache.ode.bpel.DAO");
+    static final Logger logDao = LoggerFactory.getLogger("org.apache.ode.bpel.DAO");
 
     protected final SessionManager _sm;
     protected final HObject _hobj;
diff --git a/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/MessageExchangeDaoImpl.java b/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/MessageExchangeDaoImpl.java
index ba79c01..50512bf 100644
--- a/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/MessageExchangeDaoImpl.java
+++ b/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/MessageExchangeDaoImpl.java
@@ -27,8 +27,8 @@
 
 import javax.xml.namespace.QName;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.dao.MessageDAO;
 import org.apache.ode.bpel.dao.MessageExchangeDAO;
 import org.apache.ode.bpel.dao.PartnerLinkDAO;
@@ -51,7 +51,7 @@
 public class MessageExchangeDaoImpl extends HibernateDao implements
         MessageExchangeDAO {
     @SuppressWarnings("unused")
-    private static final Log __log = LogFactory.getLog(MessageExchangeDaoImpl.class);
+    private static final Logger __log = LoggerFactory.getLogger(MessageExchangeDaoImpl.class);
 
     private HMessageExchange _hself;
 
diff --git a/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/ProcessDaoImpl.java b/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/ProcessDaoImpl.java
index 116fa5c..c5fb876 100644
--- a/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/ProcessDaoImpl.java
+++ b/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/ProcessDaoImpl.java
@@ -27,8 +27,8 @@
 
 import javax.xml.namespace.QName;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.common.CorrelationKey;
 import org.apache.ode.bpel.common.ProcessState;
 import org.apache.ode.bpel.dao.CorrelatorDAO;
@@ -66,7 +66,7 @@
  * Hibernate-based {@link ProcessDAO} implementation.
  */
 public class ProcessDaoImpl extends HibernateDao implements ProcessDAO, DeferredProcessInstanceCleanable {
-    private static final Log __log = LogFactory.getLog(ProcessDaoImpl.class);
+    private static final Logger __log = LoggerFactory.getLogger(ProcessDaoImpl.class);
 
     private static final String QRY_CORRELATOR = "where this.correlatorId = ?";
 
diff --git a/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/ProcessInstanceDaoImpl.java b/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/ProcessInstanceDaoImpl.java
index 0a0292d..8d7e691 100644
--- a/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/ProcessInstanceDaoImpl.java
+++ b/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/ProcessInstanceDaoImpl.java
@@ -28,8 +28,8 @@
 
 import javax.xml.namespace.QName;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.common.ProcessState;
 import org.apache.ode.bpel.dao.ActivityRecoveryDAO;
 import org.apache.ode.bpel.dao.BpelDAOConnection;
@@ -75,7 +75,7 @@
  * Hibernate-based {@link ProcessInstanceDAO} implementation.
  */
 public class ProcessInstanceDaoImpl extends HibernateDao implements ProcessInstanceDAO {
-  private static final Log __log = LogFactory.getLog(ProcessInstanceDaoImpl.class);
+  private static final Logger __log = LoggerFactory.getLogger(ProcessInstanceDaoImpl.class);
 
   /** Query for removing selectors. */
   private static final String QRY_DELSELECTORS = "delete from "  +
diff --git a/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/GZipDataType.java b/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/GZipDataType.java
index f06a1e3..c272eaa 100644
--- a/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/GZipDataType.java
+++ b/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/GZipDataType.java
@@ -32,8 +32,8 @@
 import java.util.zip.GZIPInputStream;
 import java.util.zip.GZIPOutputStream;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import org.hibernate.usertype.UserType;
 
@@ -42,7 +42,7 @@
  * to increase performance and save disk space.
  */
 public class GZipDataType implements UserType {
-    private static final Log log = LogFactory.getLog(GZipDataType.class);
+    private static final Logger log = LoggerFactory.getLogger(GZipDataType.class);
 
     public static final int[] SQL_TYPES = new int[] { Types.BLOB };
 
diff --git a/dao-hibernate/src/test/resources/log4j2.xml b/dao-hibernate/src/test/resources/log4j2.xml
new file mode 100644
index 0000000..9f6bc53
--- /dev/null
+++ b/dao-hibernate/src/test/resources/log4j2.xml
@@ -0,0 +1,37 @@
+<Configuration>
+    <Appenders>
+        <File name="FILE" fileName="target/test/test.log" append="false">
+            <PatternLayout pattern="%d{ABSOLUTE} %-5p [%c{1}] %m%n"/>
+        </File>
+        <Console name="STDOUT" target="SYSTEM_OUT">
+            <PatternLayout pattern="%d{ABSOLUTE} %-5p [%c{1}] %m%n"/>
+        </Console>
+        <Async name="Async">
+            <AppenderRef ref="FILE"/>
+            <AppenderRef ref="STDOUT"/>
+        </Async>
+    </Appenders>
+
+    <Loggers>
+        <Logger name="org.apache.ode" level="info" additivity="false">
+            <AppenderRef ref="FILE"/>
+        </Logger>
+        <Logger name="org.apache.axis2" level="info" additivity="false">
+            <AppenderRef ref="FILE"/>
+        </Logger>
+       <Logger name="org.hibernate" level="warn" additivity="false">
+            <AppenderRef ref="FILE"/>
+        </Logger>
+        <Logger name="org.apache.openjpa" level="warn" additivity="false">
+            <AppenderRef ref="FILE"/>
+        </Logger>
+        <Logger name="org.springframework" level="error" additivity="false">
+            <AppenderRef ref="FILE"/>
+        </Logger>
+
+        <Root level="info">
+            <AppenderRef ref="Async"/>
+        </Root>
+    </Loggers>
+
+</Configuration>
diff --git a/dao-jpa/src/main/java/org/apache/ode/dao/jpa/BPELDAOConnectionFactoryImpl.java b/dao-jpa/src/main/java/org/apache/ode/dao/jpa/BPELDAOConnectionFactoryImpl.java
index 89ace41..793a482 100644
--- a/dao-jpa/src/main/java/org/apache/ode/dao/jpa/BPELDAOConnectionFactoryImpl.java
+++ b/dao-jpa/src/main/java/org/apache/ode/dao/jpa/BPELDAOConnectionFactoryImpl.java
@@ -18,8 +18,8 @@
  */
 package org.apache.ode.dao.jpa;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.dao.BpelDAOConnection;
 import org.apache.ode.bpel.dao.BpelDAOConnectionFactoryJDBC;
 import org.apache.openjpa.ee.ManagedRuntime;
@@ -43,7 +43,7 @@
  * @author Matthieu Riou <mriou at apache dot org>
  */
 public class BPELDAOConnectionFactoryImpl implements BpelDAOConnectionFactoryJDBC {
-    static final Log __log = LogFactory.getLog(BPELDAOConnectionFactoryImpl.class);
+    static final Logger __log = LoggerFactory.getLogger(BPELDAOConnectionFactoryImpl.class);
 
     protected EntityManagerFactory _emf;
     private TransactionManager _tm;
diff --git a/dao-jpa/src/main/java/org/apache/ode/dao/jpa/BPELDAOConnectionImpl.java b/dao-jpa/src/main/java/org/apache/ode/dao/jpa/BPELDAOConnectionImpl.java
index 17e7903..ace6bc7 100644
--- a/dao-jpa/src/main/java/org/apache/ode/dao/jpa/BPELDAOConnectionImpl.java
+++ b/dao-jpa/src/main/java/org/apache/ode/dao/jpa/BPELDAOConnectionImpl.java
@@ -34,8 +34,8 @@
 import javax.persistence.Query;
 import javax.xml.namespace.QName;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.common.BpelEventFilter;
 import org.apache.ode.bpel.common.Filter;
 import org.apache.ode.bpel.common.InstanceFilter;
@@ -57,7 +57,7 @@
  * @author Matthieu Riou <mriou at apache dot org>
  */
 public class BPELDAOConnectionImpl implements BpelDAOConnection {
-    static final Log __log = LogFactory.getLog(BPELDAOConnectionImpl.class);
+    static final Logger __log = LoggerFactory.getLogger(BPELDAOConnectionImpl.class);
 
     protected EntityManager _em;
 
diff --git a/dao-jpa/src/main/java/org/apache/ode/dao/jpa/CorrelatorDAOImpl.java b/dao-jpa/src/main/java/org/apache/ode/dao/jpa/CorrelatorDAOImpl.java
index 78c0ab3..84681b7 100644
--- a/dao-jpa/src/main/java/org/apache/ode/dao/jpa/CorrelatorDAOImpl.java
+++ b/dao-jpa/src/main/java/org/apache/ode/dao/jpa/CorrelatorDAOImpl.java
@@ -19,8 +19,8 @@
 
 package org.apache.ode.dao.jpa;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.common.CorrelationKeySet;
 import org.apache.ode.bpel.dao.*;
 
@@ -34,7 +34,7 @@
 @Table(name = "ODE_CORRELATOR")
 @NamedQueries( { @NamedQuery(name = CorrelatorDAOImpl.DELETE_CORRELATORS_BY_PROCESS, query = "delete from CorrelatorDAOImpl as c where c._process = :process") })
 public class CorrelatorDAOImpl extends OpenJPADAO implements CorrelatorDAO {
-    private static Log __log = LogFactory.getLog(CorrelatorDAOImpl.class);
+    private static Logger __log = LoggerFactory.getLogger(CorrelatorDAOImpl.class);
     public final static String DELETE_CORRELATORS_BY_PROCESS = "DELETE_CORRELATORS_BY_PROCESS";
     private final static String ROUTE_BY_CKEY_HEADER = "select route from MessageRouteDAOImpl as route where route._correlator._process._processType = :ptype and route._correlator._correlatorKey = :corrkey";
 
diff --git a/dao-jpa/src/main/java/org/apache/ode/dao/jpa/MessageDAOImpl.java b/dao-jpa/src/main/java/org/apache/ode/dao/jpa/MessageDAOImpl.java
index 1278b1d..d214cf8 100644
--- a/dao-jpa/src/main/java/org/apache/ode/dao/jpa/MessageDAOImpl.java
+++ b/dao-jpa/src/main/java/org/apache/ode/dao/jpa/MessageDAOImpl.java
@@ -19,8 +19,8 @@
 
 package org.apache.ode.dao.jpa;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.dao.MessageDAO;
 import org.apache.ode.bpel.dao.MessageExchangeDAO;
 import org.apache.ode.utils.DOMUtils;
@@ -46,7 +46,7 @@
 @Table(name = "ODE_MESSAGE")
 @NamedQueries( { @NamedQuery(name = MessageDAOImpl.DELETE_MESSAGES_BY_PROCESS, query = "delete from MessageDAOImpl as m where m._messageExchange._process = :process") })
 public class MessageDAOImpl implements MessageDAO {
-    private static Log __log = LogFactory.getLog(MessageDAOImpl.class);
+    private static Logger __log = LoggerFactory.getLogger(MessageDAOImpl.class);
     public final static String DELETE_MESSAGES_BY_PROCESS = "DELETE_MESSAGES_BY_PROCESS";
 
     @Id
diff --git a/dao-jpa/src/main/java/org/apache/ode/dao/jpa/MessageExchangeDAOImpl.java b/dao-jpa/src/main/java/org/apache/ode/dao/jpa/MessageExchangeDAOImpl.java
index 193f571..95dbefa 100644
--- a/dao-jpa/src/main/java/org/apache/ode/dao/jpa/MessageExchangeDAOImpl.java
+++ b/dao-jpa/src/main/java/org/apache/ode/dao/jpa/MessageExchangeDAOImpl.java
@@ -19,8 +19,8 @@
 
 package org.apache.ode.dao.jpa;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.common.CorrelationKeySet;
 import org.apache.ode.bpel.common.CorrelationKey;
 import org.apache.ode.bpel.dao.*;
@@ -56,7 +56,7 @@
     @NamedQuery(name=MessageExchangeDAOImpl.SELECT_MEX_IDS_BY_PROCESS, query="select m._id from MessageExchangeDAOImpl as m where m._process = :process")
 })
 public class MessageExchangeDAOImpl extends OpenJPADAO implements MessageExchangeDAO, CorrelatorMessageDAO {
-    private static final Log __log = LogFactory.getLog(MessageExchangeDAOImpl.class);
+    private static final Logger __log = LoggerFactory.getLogger(MessageExchangeDAOImpl.class);
 
     public final static String DELETE_MEXS_BY_PROCESS = "DELETE_MEXS_BY_PROCESS";
     public final static String SELECT_MEX_IDS_BY_PROCESS = "SELECT_MEX_IDS_BY_PROCESS";
diff --git a/dao-jpa/src/main/java/org/apache/ode/dao/jpa/OpenJPADAO.java b/dao-jpa/src/main/java/org/apache/ode/dao/jpa/OpenJPADAO.java
index 16580fc..78a12d6 100644
--- a/dao-jpa/src/main/java/org/apache/ode/dao/jpa/OpenJPADAO.java
+++ b/dao-jpa/src/main/java/org/apache/ode/dao/jpa/OpenJPADAO.java
@@ -18,8 +18,8 @@
  */
 package org.apache.ode.dao.jpa;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.openjpa.persistence.OpenJPAPersistence;
 import org.apache.openjpa.persistence.OpenJPAQuery;
 
@@ -34,7 +34,7 @@
  * @author Matthieu Riou <mriou at apache dot org>
  */
 public class OpenJPADAO {
-    private static final Log __log = LogFactory.getLog(OpenJPADAO.class);
+    private static final Logger __log = LoggerFactory.getLogger(OpenJPADAO.class);
 
     protected BPELDAOConnectionImpl getConn() {
         return BPELDAOConnectionFactoryImpl._connections.get();
@@ -75,4 +75,4 @@
             }
         }
     }
-}
\ No newline at end of file
+}
diff --git a/dao-jpa/src/main/java/org/apache/ode/dao/jpa/ProcessDAOImpl.java b/dao-jpa/src/main/java/org/apache/ode/dao/jpa/ProcessDAOImpl.java
index 605e462..aed6af1 100644
--- a/dao-jpa/src/main/java/org/apache/ode/dao/jpa/ProcessDAOImpl.java
+++ b/dao-jpa/src/main/java/org/apache/ode/dao/jpa/ProcessDAOImpl.java
@@ -19,8 +19,8 @@
 
 package org.apache.ode.dao.jpa;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.common.CorrelationKey;
 import org.apache.ode.bpel.common.ProcessState;
 import org.apache.ode.bpel.dao.CorrelatorDAO;
@@ -47,7 +47,7 @@
     @NamedQuery(name="CorrelatorByKey", query="select c from CorrelatorDAOImpl as c where c._correlatorKey = :ckey and c._process = :process")
 })
 public class ProcessDAOImpl extends OpenJPADAO implements ProcessDAO {
-    private static final Log __log = LogFactory.getLog(ProcessDAOImpl.class);
+    private static final Logger __log = LoggerFactory.getLogger(ProcessDAOImpl.class);
 
     @Id @Column(name="ID")
     @GeneratedValue(strategy= GenerationType.AUTO)
@@ -226,4 +226,4 @@
         qry.setParameter("state", ProcessState.STATE_ACTIVE);
         return qry.getResultList();
     }
-}
\ No newline at end of file
+}
diff --git a/dao-jpa/src/main/java/org/apache/ode/dao/jpa/ProcessInstanceDAOImpl.java b/dao-jpa/src/main/java/org/apache/ode/dao/jpa/ProcessInstanceDAOImpl.java
index 7d6bdcb..0ab3d67 100644
--- a/dao-jpa/src/main/java/org/apache/ode/dao/jpa/ProcessInstanceDAOImpl.java
+++ b/dao-jpa/src/main/java/org/apache/ode/dao/jpa/ProcessInstanceDAOImpl.java
@@ -19,8 +19,8 @@
 
 package org.apache.ode.dao.jpa;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.common.ProcessState;
 import org.apache.ode.bpel.dao.ActivityRecoveryDAO;
 import org.apache.ode.bpel.dao.BpelDAOConnection;
@@ -75,7 +75,7 @@
             query="select i._process._processId, count(i._instanceId) from ProcessInstanceDAOImpl as i where i._process._processId in (:processIds) and i._state in(:states) group by i._process._processId")
 })
 public class ProcessInstanceDAOImpl extends OpenJPADAO implements ProcessInstanceDAO {
-    private static final Log __log = LogFactory.getLog(ProcessInstanceDAOImpl.class);
+    private static final Logger __log = LoggerFactory.getLogger(ProcessInstanceDAOImpl.class);
 
     public final static String DELETE_INSTANCES_BY_PROCESS = "DELETE_INSTANCES_BY_PROCESS";
     public final static String SELECT_INSTANCE_IDS_BY_PROCESS = "SELECT_INSTANCE_IDS_BY_PROCESS";
diff --git a/dao-jpa/src/main/java/org/apache/ode/dao/jpa/ProcessManagementDAOImpl.java b/dao-jpa/src/main/java/org/apache/ode/dao/jpa/ProcessManagementDAOImpl.java
index 5b287a7..08d2ed4 100644
--- a/dao-jpa/src/main/java/org/apache/ode/dao/jpa/ProcessManagementDAOImpl.java
+++ b/dao-jpa/src/main/java/org/apache/ode/dao/jpa/ProcessManagementDAOImpl.java
@@ -29,8 +29,8 @@
 import javax.persistence.Query;
 import javax.xml.namespace.QName;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.common.InstanceFilter;
 import org.apache.ode.bpel.common.InstanceFilter.StatusKeys;
 import org.apache.ode.bpel.dao.BpelDAOConnection;
@@ -38,7 +38,7 @@
 import org.apache.ode.bpel.dao.ProcessManagementDAO;
 
 public class ProcessManagementDAOImpl implements ProcessManagementDAO {
-    private static final Log __log = LogFactory.getLog(ProcessManagementDAOImpl.class);
+    private static final Logger __log = LoggerFactory.getLogger(ProcessManagementDAOImpl.class);
 
     private EntityManager em;
 
diff --git a/dependencies.rb b/dependencies.rb
index f469c02..69912fb 100644
--- a/dependencies.rb
+++ b/dependencies.rb
@@ -110,6 +110,7 @@
                           :under=>"org.apache.felix", :version=>"0.6.1")
                       ]
 LOG4J               = "log4j:log4j:jar:1.2.17"
+LOG4J2              = group("log4j-api", "log4j-core", "log4j-slf4j-impl", "log4j-web", :under=>"org.apache.logging.log4j", :version=>"2.3")
 OBJECT_DIFF         = "de.danielbechler:java-object-diff:jar:0.13.1"
 OPENJPA             = ["org.apache.openjpa:openjpa:jar:1.2.3",
                        "net.sourceforge.serp:serp:jar:1.13.1"]
@@ -142,7 +143,7 @@
                         "commons-beanutils:commons-beanutils:jar:1.7.0",
                         "tranql:tranql-connector-derby-common:jar:1.1"
                         ]
-SLF4J = group(%w{ slf4j-api slf4j-log4j12 jcl-over-slf4j }, :under=>"org.slf4j", :version=>"1.7.2")
+SLF4J               = group(%w{ slf4j-api jcl-over-slf4j}, :under=>"org.slf4j", :version=>"1.7.12")
 SPRING              = ["org.springframework:spring:jar:2.5.6"]
 SPRING_OSGI         = ["org.springframework.osgi:spring-osgi-core:jar:1.2.0"]
 SPRING_TEST         = ["org.springframework:spring-test:jar:2.5.6"]
diff --git a/jbi-karaf-commands/src/main/java/org/apache/ode/karaf/commands/OdeListCommand.java b/jbi-karaf-commands/src/main/java/org/apache/ode/karaf/commands/OdeListCommand.java
index 6fcd7cf..d7a7e25 100644
--- a/jbi-karaf-commands/src/main/java/org/apache/ode/karaf/commands/OdeListCommand.java
+++ b/jbi-karaf-commands/src/main/java/org/apache/ode/karaf/commands/OdeListCommand.java
@@ -22,8 +22,8 @@
 import java.util.*;
 import java.util.concurrent.TimeoutException;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.felix.gogo.commands.*;
 import org.apache.ode.bpel.pmapi.*;
 import org.apache.ode.bpel.pmapi.TScopeInfo.Activities;
@@ -36,7 +36,7 @@
 @Command(scope = "ode", name = "list", description = "Lists ode processes and active instances")
 public class OdeListCommand extends OdeCommandsBase {
 
-    private static final Log __log = LogFactory.getLog(OdeListCommand.class);
+    private static final Logger __log = LoggerFactory.getLogger(OdeListCommand.class);
 
     @Option(name = "-a", aliases = "--all", description = "Show all (even completed) instances")
     private boolean showAll;
diff --git a/jbi-karaf-commands/src/main/java/org/apache/ode/karaf/commands/OdeRecoverActivityCommand.java b/jbi-karaf-commands/src/main/java/org/apache/ode/karaf/commands/OdeRecoverActivityCommand.java
index 41002b8..b092463 100644
--- a/jbi-karaf-commands/src/main/java/org/apache/ode/karaf/commands/OdeRecoverActivityCommand.java
+++ b/jbi-karaf-commands/src/main/java/org/apache/ode/karaf/commands/OdeRecoverActivityCommand.java
@@ -19,13 +19,13 @@
 
 package org.apache.ode.karaf.commands;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.felix.gogo.commands.*;
 
 @Command(scope = "ode", name = "recoverActivity", description = "Recover a failed BPEL activity in ODE")
 public class OdeRecoverActivityCommand extends OdeCommandsBase {
-    private static final Log __log = LogFactory.getLog(OdeRecoverActivityCommand.class);
+    private static final Logger __log = LoggerFactory.getLogger(OdeRecoverActivityCommand.class);
     
     private static final String RETRY = "retry";
     private static final String FAULT = "fault";
diff --git a/jbi-karaf-commands/src/main/java/org/apache/ode/karaf/commands/OdeResumeCommand.java b/jbi-karaf-commands/src/main/java/org/apache/ode/karaf/commands/OdeResumeCommand.java
index b87c2f4..cb47265 100644
--- a/jbi-karaf-commands/src/main/java/org/apache/ode/karaf/commands/OdeResumeCommand.java
+++ b/jbi-karaf-commands/src/main/java/org/apache/ode/karaf/commands/OdeResumeCommand.java
@@ -22,15 +22,15 @@
 import java.util.List;
 import java.util.concurrent.TimeoutException;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.felix.gogo.commands.*;
 import org.apache.ode.bpel.pmapi.TInstanceInfo;
 
 @Command(scope = "ode", name = "resume", description = "Resume suspended ODE process instances")
 public class OdeResumeCommand extends OdeCommandsBase {
 
-    private static final Log __log = LogFactory.getLog(OdeResumeCommand.class);
+    private static final Logger __log = LoggerFactory.getLogger(OdeResumeCommand.class);
 
     @Argument(name = "iids", description = "Instance IDs to resume", multiValued = true)
     private static Long[] iids;
diff --git a/jbi-karaf-commands/src/main/java/org/apache/ode/karaf/commands/OdeSuspendCommand.java b/jbi-karaf-commands/src/main/java/org/apache/ode/karaf/commands/OdeSuspendCommand.java
index 584014e..ec7cd20 100644
--- a/jbi-karaf-commands/src/main/java/org/apache/ode/karaf/commands/OdeSuspendCommand.java
+++ b/jbi-karaf-commands/src/main/java/org/apache/ode/karaf/commands/OdeSuspendCommand.java
@@ -22,15 +22,15 @@
 import java.util.List;
 import java.util.concurrent.TimeoutException;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.felix.gogo.commands.*;
 import org.apache.ode.bpel.pmapi.TInstanceInfo;
 
 @Command(scope = "ode", name = "suspend", description = "Suspend active ODE process instances")
 public class OdeSuspendCommand extends OdeCommandsBase {
 
-    private static final Log __log = LogFactory.getLog(OdeSuspendCommand.class);
+    private static final Logger __log = LoggerFactory.getLogger(OdeSuspendCommand.class);
 
     @Argument(name = "iids", description = "Instance IDs to suspend", multiValued = true)
     private static Long[] iids;
diff --git a/jbi-karaf-commands/src/main/java/org/apache/ode/karaf/commands/OdeTerminateCommand.java b/jbi-karaf-commands/src/main/java/org/apache/ode/karaf/commands/OdeTerminateCommand.java
index 01d6a0b..52699ce 100644
--- a/jbi-karaf-commands/src/main/java/org/apache/ode/karaf/commands/OdeTerminateCommand.java
+++ b/jbi-karaf-commands/src/main/java/org/apache/ode/karaf/commands/OdeTerminateCommand.java
@@ -22,15 +22,15 @@
 import java.util.List;
 import java.util.concurrent.TimeoutException;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.felix.gogo.commands.*;
 import org.apache.ode.bpel.pmapi.TInstanceInfo;
 
 @Command(scope = "ode", name = "terminate", description = "Terminate active ODE process instances")
 public class OdeTerminateCommand extends OdeCommandsBase {
 
-    private static final Log __log = LogFactory.getLog(OdeTerminateCommand.class);
+    private static final Logger __log = LoggerFactory.getLogger(OdeTerminateCommand.class);
 
     @Argument(name = "iids", description = "Instance IDs to terminate", multiValued = true)
     private static Long[] iids;
diff --git a/jbi/src/main/java/org/apache/ode/jbi/BaseMessageExchangeProcessor.java b/jbi/src/main/java/org/apache/ode/jbi/BaseMessageExchangeProcessor.java
index b8a6a97..a83f937 100644
--- a/jbi/src/main/java/org/apache/ode/jbi/BaseMessageExchangeProcessor.java
+++ b/jbi/src/main/java/org/apache/ode/jbi/BaseMessageExchangeProcessor.java
@@ -26,15 +26,15 @@
 import javax.jbi.messaging.MessagingException;
 import javax.jbi.messaging.NormalizedMessage;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Base message exchange processor; handles common JBI message exchange conditions and delegates
  * actual invocation to subclass.
  */
 public abstract class BaseMessageExchangeProcessor implements JbiMessageExchangeProcessor {
-    final Log LOG = LogFactory.getLog(getClass());
+    final Logger LOG = LoggerFactory.getLogger(getClass());
 
     DeliveryChannel _channel;
 
diff --git a/jbi/src/main/java/org/apache/ode/jbi/BindingContextImpl.java b/jbi/src/main/java/org/apache/ode/jbi/BindingContextImpl.java
index 1b06383..3a49170 100644
--- a/jbi/src/main/java/org/apache/ode/jbi/BindingContextImpl.java
+++ b/jbi/src/main/java/org/apache/ode/jbi/BindingContextImpl.java
@@ -24,8 +24,8 @@
 import javax.wsdl.PortType;
 import javax.xml.namespace.QName;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.iapi.BindingContext;
 import org.apache.ode.bpel.iapi.ContextException;
 import org.apache.ode.bpel.iapi.Endpoint;
@@ -40,7 +40,7 @@
  *
  */
 class BindingContextImpl implements BindingContext {
-    private static final Log __log = LogFactory.getLog(BindingContextImpl.class);
+    private static final Logger __log = LoggerFactory.getLogger(BindingContextImpl.class);
 
     private final OdeContext _ode;
 
diff --git a/jbi/src/main/java/org/apache/ode/jbi/EndpointReferenceContextImpl.java b/jbi/src/main/java/org/apache/ode/jbi/EndpointReferenceContextImpl.java
index 6762dba..8c3e055 100644
--- a/jbi/src/main/java/org/apache/ode/jbi/EndpointReferenceContextImpl.java
+++ b/jbi/src/main/java/org/apache/ode/jbi/EndpointReferenceContextImpl.java
@@ -22,8 +22,8 @@
 import javax.jbi.servicedesc.ServiceEndpoint;
 import javax.xml.namespace.QName;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.iapi.EndpointReference;
 import org.apache.ode.bpel.iapi.EndpointReferenceContext;
 import org.apache.ode.bpel.epr.MutableEndpoint;
@@ -49,7 +49,7 @@
  *
  */
 public class EndpointReferenceContextImpl implements EndpointReferenceContext {
-  private static final Log __log = LogFactory.getLog(EndpointReferenceContextImpl.class);
+  private static final Logger __log = LoggerFactory.getLogger(EndpointReferenceContextImpl.class);
 
   private final OdeContext _ode;
 
diff --git a/jbi/src/main/java/org/apache/ode/jbi/JbiMessageExchangeEventRouter.java b/jbi/src/main/java/org/apache/ode/jbi/JbiMessageExchangeEventRouter.java
index fdba2a7..2510a95 100644
--- a/jbi/src/main/java/org/apache/ode/jbi/JbiMessageExchangeEventRouter.java
+++ b/jbi/src/main/java/org/apache/ode/jbi/JbiMessageExchangeEventRouter.java
@@ -23,15 +23,15 @@
 import javax.jbi.messaging.MessagingException;
 import javax.xml.namespace.QName;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.iapi.Endpoint;
 
 /**
  * Route incoming JBI messages to Ode services
  */
 class JbiMessageExchangeEventRouter implements JbiMessageExchangeProcessor {
-    private static final Log __log = LogFactory.getLog(JbiMessageExchangeEventRouter.class);
+    private static final Logger __log = LoggerFactory.getLogger(JbiMessageExchangeEventRouter.class);
 
     private OdeContext _ode;
 
diff --git a/jbi/src/main/java/org/apache/ode/jbi/MessageExchangeContextImpl.java b/jbi/src/main/java/org/apache/ode/jbi/MessageExchangeContextImpl.java
index 122a4c6..3b1102c 100644
--- a/jbi/src/main/java/org/apache/ode/jbi/MessageExchangeContextImpl.java
+++ b/jbi/src/main/java/org/apache/ode/jbi/MessageExchangeContextImpl.java
@@ -20,8 +20,8 @@
 package org.apache.ode.jbi;
 
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import org.apache.ode.bpel.iapi.BpelEngineException;
 import org.apache.ode.bpel.iapi.ContextException;
@@ -37,8 +37,7 @@
  */
 public class MessageExchangeContextImpl implements MessageExchangeContext {
 
-  private static final Log __log = LogFactory
-      .getLog(MessageExchangeContextImpl.class);
+  private static final Logger __log = LoggerFactory.getLogger(MessageExchangeContextImpl.class);
 
   private OdeContext _ode;
 
diff --git a/jbi/src/main/java/org/apache/ode/jbi/OdeConsumer.java b/jbi/src/main/java/org/apache/ode/jbi/OdeConsumer.java
index 64b9a6d..85d33fa 100644
--- a/jbi/src/main/java/org/apache/ode/jbi/OdeConsumer.java
+++ b/jbi/src/main/java/org/apache/ode/jbi/OdeConsumer.java
@@ -34,15 +34,15 @@
 import javax.jbi.messaging.*;
 import javax.jbi.servicedesc.ServiceEndpoint;
 import javax.xml.namespace.QName;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Bridge between ODE (consumers) and JBI (providers). An single object of this type handles all communications initiated by ODE
  * that is destined for other JBI providers.
  */
 abstract class OdeConsumer extends ServiceBridge implements JbiMessageExchangeProcessor {
-    private static final Log __log = LogFactory.getLog(OdeConsumer.class);
+    private static final Logger __log = LoggerFactory.getLogger(OdeConsumer.class);
     private static final long DEFAULT_RESPONSE_TIMEOUT = Long.getLong("org.apache.ode.jbi.timeout", 2 * 60 * 1000L);
 
     protected OdeContext _ode;
@@ -232,7 +232,7 @@
                                                 .getName()), faultResponse);
                                     } else {
                                         // Can this even happen?
-                                        __log.fatal("Internal Error: fault found without a message type: " + wsdlFlt);
+                                        __log.error("Internal Error: fault found without a message type: " + wsdlFlt);
                                         pmex.replyWithFailure(FailureType.FORMAT_ERROR, "Fault has no message: "
                                                 + wsdlFlt.getName(), null);
                                     }
diff --git a/jbi/src/main/java/org/apache/ode/jbi/OdeConsumerAsync.java b/jbi/src/main/java/org/apache/ode/jbi/OdeConsumerAsync.java
index 029ded7..704cbe1 100644
--- a/jbi/src/main/java/org/apache/ode/jbi/OdeConsumerAsync.java
+++ b/jbi/src/main/java/org/apache/ode/jbi/OdeConsumerAsync.java
@@ -31,8 +31,8 @@
 import javax.jbi.messaging.InOut;
 import javax.jbi.messaging.MessagingException;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.iapi.PartnerRoleMessageExchange;
 import org.apache.ode.bpel.iapi.MessageExchange.FailureType;
 
@@ -40,7 +40,7 @@
  * Asynchronous JBI service consumer
  */
 class OdeConsumerAsync extends OdeConsumer {
-    private static final Log __log = LogFactory.getLog(OdeConsumerAsync.class);
+    private static final Logger __log = LoggerFactory.getLogger(OdeConsumerAsync.class);
 
     /**
      * We create an executor to handle all the asynchronous invocations/timeouts. Note, we don't need a lot of threads
diff --git a/jbi/src/main/java/org/apache/ode/jbi/OdeConsumerSync.java b/jbi/src/main/java/org/apache/ode/jbi/OdeConsumerSync.java
index 97815cc..0ea3710 100644
--- a/jbi/src/main/java/org/apache/ode/jbi/OdeConsumerSync.java
+++ b/jbi/src/main/java/org/apache/ode/jbi/OdeConsumerSync.java
@@ -23,8 +23,8 @@
 import javax.jbi.messaging.InOut;
 import javax.jbi.messaging.MessagingException;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.iapi.PartnerRoleMessageExchange;
 
 /**
@@ -34,7 +34,7 @@
  *
  */
 class OdeConsumerSync extends OdeConsumer {
-    private static final Log __log = LogFactory.getLog(OdeConsumerSync.class);
+    private static final Logger __log = LoggerFactory.getLogger(OdeConsumerSync.class);
 
 
     OdeConsumerSync(OdeContext ode) {
diff --git a/jbi/src/main/java/org/apache/ode/jbi/OdeContext.java b/jbi/src/main/java/org/apache/ode/jbi/OdeContext.java
index c8fed8d..ffa3636 100644
--- a/jbi/src/main/java/org/apache/ode/jbi/OdeContext.java
+++ b/jbi/src/main/java/org/apache/ode/jbi/OdeContext.java
@@ -37,8 +37,8 @@
 import javax.wsdl.factory.WSDLFactory;
 import javax.xml.namespace.QName;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.agents.memory.SizingAgent;
 import org.apache.ode.bpel.dao.BpelDAOConnectionFactory;
 import org.apache.ode.bpel.engine.BpelServerImpl;
@@ -63,7 +63,7 @@
  * @author mszefler
  */
 final public class OdeContext {
-    private static final Log __log = LogFactory.getLog(OdeContext.class);
+    private static final Logger __log = LoggerFactory.getLogger(OdeContext.class);
 
     public static final QName PM_SERVICE_NAME = new QName("http://www.apache.org/ode/pmapi", "ProcessManagementService");
     public static final String PM_PORT_NAME = "ProcessManagementPort";
diff --git a/jbi/src/main/java/org/apache/ode/jbi/OdeLifeCycle.java b/jbi/src/main/java/org/apache/ode/jbi/OdeLifeCycle.java
index c885d13..950d47e 100644
--- a/jbi/src/main/java/org/apache/ode/jbi/OdeLifeCycle.java
+++ b/jbi/src/main/java/org/apache/ode/jbi/OdeLifeCycle.java
@@ -19,8 +19,8 @@
 
 package org.apache.ode.jbi;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.geronimo.transaction.manager.GeronimoTransactionManager;
 import org.apache.ode.bpel.connector.BpelServerConnector;
 import org.apache.ode.bpel.dao.BpelDAOConnectionFactoryJDBC;
@@ -56,7 +56,7 @@
 public class OdeLifeCycle implements ComponentLifeCycle {
     private static final Messages __msgs = Messages.getMessages(Messages.class);
 
-    private static final Log __log = LogFactory.getLog(OdeLifeCycle.class);
+    private static final Logger __log = LoggerFactory.getLogger(OdeLifeCycle.class);
 
     private OdeSUManager _suManager = null;
 
@@ -147,7 +147,7 @@
             _initSuccess = true;
             __log.info(__msgs.msgOdeInitialized());
         } catch (Throwable t) {
-            __log.fatal("", t);
+            __log.error("", t);
             throw new JBIException("Fatal error", t);
         }
     }
@@ -378,7 +378,7 @@
             if (!_initSuccess) {
                 String errmsg = "attempt to call start() after init() failure.";
                 IllegalStateException ex = new IllegalStateException(errmsg);
-                __log.fatal(errmsg, ex);
+                __log.error(errmsg, ex);
                 throw new JBIException(errmsg, ex);
             }
 
@@ -422,7 +422,7 @@
                 try {
                     _receiver.cease();
                 } catch (Exception ex) {
-                    __log.fatal("Error ceasing receiver.", ex);
+                    __log.error("Error ceasing receiver.", ex);
                 } finally {
                     _receiver = null;
                 }
@@ -432,7 +432,7 @@
                 _ode._server.stop();
 
             } catch (Throwable ex) {
-                __log.fatal("Error stopping services.", ex);
+                __log.error("Error stopping services.", ex);
             }
 
             __log.info("ODE stopped.");
diff --git a/jbi/src/main/java/org/apache/ode/jbi/OdeSUManager.java b/jbi/src/main/java/org/apache/ode/jbi/OdeSUManager.java
index 8ff9a3f..7e6dfef 100644
--- a/jbi/src/main/java/org/apache/ode/jbi/OdeSUManager.java
+++ b/jbi/src/main/java/org/apache/ode/jbi/OdeSUManager.java
@@ -27,8 +27,8 @@
 import javax.xml.parsers.DocumentBuilder;
 import javax.xml.parsers.DocumentBuilderFactory;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 
@@ -36,7 +36,7 @@
 import org.apache.ode.utils.XMLParserUtils;
 
 public class OdeSUManager implements ServiceUnitManager {
-  private static final Log __log = LogFactory.getLog(OdeSUManager.class);
+  private static final Logger __log = LoggerFactory.getLogger(OdeSUManager.class);
 
   private static final Messages __msgs = Messages.getMessages(Messages.class);
 
diff --git a/jbi/src/main/java/org/apache/ode/jbi/OdeService.java b/jbi/src/main/java/org/apache/ode/jbi/OdeService.java
index 6f2be7e..699b752 100644
--- a/jbi/src/main/java/org/apache/ode/jbi/OdeService.java
+++ b/jbi/src/main/java/org/apache/ode/jbi/OdeService.java
@@ -18,8 +18,8 @@
  */
 package org.apache.ode.jbi;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.iapi.Endpoint;
 import org.apache.ode.bpel.iapi.Message;
 import org.apache.ode.bpel.iapi.MessageExchange;
@@ -47,7 +47,7 @@
  */
 public class OdeService extends ServiceBridge implements JbiMessageExchangeProcessor {
 
-    private static final Log __log = LogFactory.getLog(OdeService.class);
+    private static final Logger __log = LoggerFactory.getLogger(OdeService.class);
 
     /** utility for tracking outstanding JBI message exchanges. */
     private final JbiMexTracker _jbiMexTracker = new JbiMexTracker();
@@ -118,7 +118,7 @@
     public void onJbiMessageExchange(javax.jbi.messaging.MessageExchange jbiMex) throws MessagingException {
         if (jbiMex.getRole() != javax.jbi.messaging.MessageExchange.Role.PROVIDER) {
             String errmsg = "Message exchange is not in PROVIDER role as expected: " + jbiMex.getExchangeId();
-            __log.fatal(errmsg);
+            __log.error(errmsg);
             throw new IllegalArgumentException(errmsg);
         }
 
diff --git a/jbi/src/main/java/org/apache/ode/jbi/OdeServiceUnit.java b/jbi/src/main/java/org/apache/ode/jbi/OdeServiceUnit.java
index a497c17..829ca1d 100644
--- a/jbi/src/main/java/org/apache/ode/jbi/OdeServiceUnit.java
+++ b/jbi/src/main/java/org/apache/ode/jbi/OdeServiceUnit.java
@@ -31,15 +31,15 @@
 import javax.jbi.management.DeploymentException;
 import javax.xml.namespace.QName;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Representation of a JBI service unit. A JBI service unit may actually consist
  * of multiple processes.
  */
 class OdeServiceUnit {
-    private static final Log __log = LogFactory.getLog(OdeServiceUnit.class);
+    private static final Logger __log = LoggerFactory.getLogger(OdeServiceUnit.class);
 
     private static final Messages __msgs = Messages.getMessages(Messages.class);
 
diff --git a/jbi/src/main/java/org/apache/ode/jbi/Receiver.java b/jbi/src/main/java/org/apache/ode/jbi/Receiver.java
index d3f93f8..066349d 100644
--- a/jbi/src/main/java/org/apache/ode/jbi/Receiver.java
+++ b/jbi/src/main/java/org/apache/ode/jbi/Receiver.java
@@ -18,8 +18,8 @@
  */
 package org.apache.ode.jbi;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import javax.jbi.messaging.DeliveryChannel;
 import javax.jbi.messaging.MessageExchange;
@@ -34,7 +34,7 @@
  * Receiver pulls messages from the NMS and submits them to ODE for further processing.
  */
 public class Receiver implements Runnable {
-    private static final Log __log = LogFactory.getLog(Receiver.class);
+    private static final Logger __log = LoggerFactory.getLogger(Receiver.class);
 
     // default time to wait for MessageExchanges, in seconds
     private static final long ACCEPT_TIMEOUT = 1L;
@@ -111,7 +111,7 @@
 
                 // If it's not dead yet, we got a problem we can't deal with.
                 if (_thread.isAlive()) {
-                    __log.fatal("Receiver thread is not dying gracefully despite our insistence!.");
+                    __log.error("Receiver thread is not dying gracefully despite our insistence!.");
                 }
 
                 // In any case, next step is to shutdown the thread pool
@@ -150,11 +150,11 @@
         try {
             _channel = _odeContext.getContext().getDeliveryChannel();
             if (_channel == null) {
-                __log.fatal("No Channel!");
+                __log.error("No Channel!");
                 return;
             }
         } catch (MessagingException ex) {
-            __log.fatal("Error getting channel! ", ex);
+            __log.error("Error getting channel! ", ex);
             return;
         }
 
diff --git a/jbi/src/main/java/org/apache/ode/jbi/ServiceBridge.java b/jbi/src/main/java/org/apache/ode/jbi/ServiceBridge.java
index eab3119..ee098a8 100644
--- a/jbi/src/main/java/org/apache/ode/jbi/ServiceBridge.java
+++ b/jbi/src/main/java/org/apache/ode/jbi/ServiceBridge.java
@@ -22,8 +22,8 @@
 
 import javax.jbi.messaging.NormalizedMessage;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.iapi.MessageExchange;
 import org.apache.ode.bpel.iapi.MyRoleMessageExchange;
 import org.apache.ode.bpel.iapi.PartnerRoleMessageExchange;
@@ -36,7 +36,7 @@
  */
 public class ServiceBridge {
 
-    private static final Log __log = LogFactory.getLog(ServiceBridge.class);
+    private static final Logger __log = LoggerFactory.getLogger(ServiceBridge.class);
 
     /**
      * Transfer message properties from the ODE message exchange to the JBI message exchange object.
diff --git a/jbi/src/main/java/org/apache/ode/jbi/msgmap/BaseXmlMapper.java b/jbi/src/main/java/org/apache/ode/jbi/msgmap/BaseXmlMapper.java
index 66ecf61..6103c4f 100644
--- a/jbi/src/main/java/org/apache/ode/jbi/msgmap/BaseXmlMapper.java
+++ b/jbi/src/main/java/org/apache/ode/jbi/msgmap/BaseXmlMapper.java
@@ -25,14 +25,14 @@
 
 import javax.xml.transform.Source;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.utils.DOMUtils;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 
 public abstract class BaseXmlMapper {
-    protected Log __log = LogFactory.getLog(getClass());
+    protected Logger __log = LoggerFactory.getLogger(getClass());
 
     /** Cache of the parsed messages. */
     private static Map<Source, Document> __parsed = Collections.synchronizedMap(new WeakHashMap<Source, Document>());
diff --git a/jbi/src/main/java/org/apache/ode/jbi/util/SchemaCollection.java b/jbi/src/main/java/org/apache/ode/jbi/util/SchemaCollection.java
index 6b26a77..e8aaaa2 100644
--- a/jbi/src/main/java/org/apache/ode/jbi/util/SchemaCollection.java
+++ b/jbi/src/main/java/org/apache/ode/jbi/util/SchemaCollection.java
@@ -27,8 +27,8 @@
 import javax.xml.parsers.DocumentBuilder;
 import javax.xml.parsers.DocumentBuilderFactory;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.utils.XMLParserUtils;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
@@ -43,7 +43,7 @@
  */
 public class SchemaCollection {
 
-    private static Log log = LogFactory.getLog(SchemaCollection.class);
+    private static Logger log = LoggerFactory.getLogger(SchemaCollection.class);
 
     private Map schemas;
     private URI baseUri;
diff --git a/jbi/src/main/java/org/apache/ode/jbi/util/WSDLFlattener.java b/jbi/src/main/java/org/apache/ode/jbi/util/WSDLFlattener.java
index d73e6d4..85edebb 100644
--- a/jbi/src/main/java/org/apache/ode/jbi/util/WSDLFlattener.java
+++ b/jbi/src/main/java/org/apache/ode/jbi/util/WSDLFlattener.java
@@ -38,14 +38,14 @@
 import javax.wsdl.factory.WSDLFactory;
 import javax.xml.namespace.QName;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.ibm.wsdl.extensions.schema.SchemaImpl;
 
 public class WSDLFlattener {
 
-    private static Log __log = LogFactory.getLog(WSDLFlattener.class);
+    private static Logger __log = LoggerFactory.getLogger(WSDLFlattener.class);
 
     private Definition _definition;
     private SchemaCollection _schemas;
diff --git a/jbi/src/test/java/org/apache/ode/jbi/JbiTestBase.java b/jbi/src/test/java/org/apache/ode/jbi/JbiTestBase.java
index 6b56ab7..97ec81c 100644
--- a/jbi/src/test/java/org/apache/ode/jbi/JbiTestBase.java
+++ b/jbi/src/test/java/org/apache/ode/jbi/JbiTestBase.java
@@ -37,8 +37,8 @@
 import javax.xml.namespace.QName;
 import javax.xml.transform.stream.StreamSource;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.servicemix.client.DefaultServiceMixClient;
 import org.apache.servicemix.jbi.container.ActivationSpec;
 import org.apache.servicemix.jbi.container.JBIContainer;
@@ -53,7 +53,7 @@
 
 @Ignore
 public class JbiTestBase extends SpringTestSupport {
-    private static Log log = LogFactory.getLog(JbiTestBase.class);
+    private static Logger log = LoggerFactory.getLogger(JbiTestBase.class);
 
     protected OdeComponent odeComponent;
     protected JBIContainer jbiContainer;
diff --git a/jbi/src/test/java/org/apache/ode/jbi/msgmap/JbiWsdl11WrapperMapperTest.java b/jbi/src/test/java/org/apache/ode/jbi/msgmap/JbiWsdl11WrapperMapperTest.java
index 91de1f0..63a378c 100644
--- a/jbi/src/test/java/org/apache/ode/jbi/msgmap/JbiWsdl11WrapperMapperTest.java
+++ b/jbi/src/test/java/org/apache/ode/jbi/msgmap/JbiWsdl11WrapperMapperTest.java
@@ -30,12 +30,12 @@
 import javax.xml.transform.dom.DOMSource;
 
 import org.apache.commons.io.IOUtils;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.utils.DOMUtils;
 
 public class JbiWsdl11WrapperMapperTest extends junit.framework.TestCase {
-    private static Log __log = LogFactory.getLog(JbiWsdl11WrapperMapperTest.class);
+    private static Logger __log = LoggerFactory.getLogger(JbiWsdl11WrapperMapperTest.class);
 
     public static class MockJbiFault implements javax.jbi.messaging.Fault {
         private String resourceName;
diff --git a/jbi/src/test/resources/log4j2.xml b/jbi/src/test/resources/log4j2.xml
new file mode 100644
index 0000000..9f6bc53
--- /dev/null
+++ b/jbi/src/test/resources/log4j2.xml
@@ -0,0 +1,37 @@
+<Configuration>
+    <Appenders>
+        <File name="FILE" fileName="target/test/test.log" append="false">
+            <PatternLayout pattern="%d{ABSOLUTE} %-5p [%c{1}] %m%n"/>
+        </File>
+        <Console name="STDOUT" target="SYSTEM_OUT">
+            <PatternLayout pattern="%d{ABSOLUTE} %-5p [%c{1}] %m%n"/>
+        </Console>
+        <Async name="Async">
+            <AppenderRef ref="FILE"/>
+            <AppenderRef ref="STDOUT"/>
+        </Async>
+    </Appenders>
+
+    <Loggers>
+        <Logger name="org.apache.ode" level="info" additivity="false">
+            <AppenderRef ref="FILE"/>
+        </Logger>
+        <Logger name="org.apache.axis2" level="info" additivity="false">
+            <AppenderRef ref="FILE"/>
+        </Logger>
+       <Logger name="org.hibernate" level="warn" additivity="false">
+            <AppenderRef ref="FILE"/>
+        </Logger>
+        <Logger name="org.apache.openjpa" level="warn" additivity="false">
+            <AppenderRef ref="FILE"/>
+        </Logger>
+        <Logger name="org.springframework" level="error" additivity="false">
+            <AppenderRef ref="FILE"/>
+        </Logger>
+
+        <Root level="info">
+            <AppenderRef ref="Async"/>
+        </Root>
+    </Loggers>
+
+</Configuration>
diff --git a/jca-server/src/main/java/org/apache/ode/jca/server/rmi/RmiTransportServerImpl.java b/jca-server/src/main/java/org/apache/ode/jca/server/rmi/RmiTransportServerImpl.java
index e5bad62..6520e1a 100644
--- a/jca-server/src/main/java/org/apache/ode/jca/server/rmi/RmiTransportServerImpl.java
+++ b/jca-server/src/main/java/org/apache/ode/jca/server/rmi/RmiTransportServerImpl.java
@@ -26,8 +26,8 @@
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.jca.server.ConnectionProvider;
 import org.apache.ode.ra.transports.rmi.OdeRemote;
 import org.apache.ode.ra.transports.rmi.OdeTransportPipeRemote;
@@ -37,7 +37,7 @@
  * "pipes", each represented by its own remote object.
  */
 public class RmiTransportServerImpl implements OdeRemote {
-    private static final Log __log = LogFactory.getLog(RmiTransportServerImpl.class);
+    private static final Logger __log = LoggerFactory.getLogger(RmiTransportServerImpl.class);
 
     private List<RmiPipeServerImpl> _pipes = new ArrayList<RmiPipeServerImpl>();
 
diff --git a/scheduler-simple/src/main/java/org/apache/ode/scheduler/simple/JdbcDelegate.java b/scheduler-simple/src/main/java/org/apache/ode/scheduler/simple/JdbcDelegate.java
index b3e7936..b255e08 100644
--- a/scheduler-simple/src/main/java/org/apache/ode/scheduler/simple/JdbcDelegate.java
+++ b/scheduler-simple/src/main/java/org/apache/ode/scheduler/simple/JdbcDelegate.java
@@ -42,8 +42,8 @@
 import org.apache.ode.bpel.iapi.Scheduler.JobDetails;
 import org.apache.ode.utils.DbIsolation;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.utils.DbIsolation;
 import org.apache.ode.utils.StreamUtils;
 
@@ -55,7 +55,7 @@
  */
 public class JdbcDelegate implements DatabaseDelegate {
 
-    private static final Log __log = LogFactory.getLog(JdbcDelegate.class);
+    private static final Logger __log = LoggerFactory.getLogger(JdbcDelegate.class);
 
     private static final String DELETE_JOB = "delete from ODE_JOB where jobid = ? and nodeid = ?";
 
diff --git a/scheduler-simple/src/main/java/org/apache/ode/scheduler/simple/SchedulerThread.java b/scheduler-simple/src/main/java/org/apache/ode/scheduler/simple/SchedulerThread.java
index 9410791..5849f3e 100644
--- a/scheduler-simple/src/main/java/org/apache/ode/scheduler/simple/SchedulerThread.java
+++ b/scheduler-simple/src/main/java/org/apache/ode/scheduler/simple/SchedulerThread.java
@@ -24,8 +24,8 @@
 import java.util.concurrent.locks.Condition;
 import java.util.concurrent.locks.ReentrantLock;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.utils.stl.CollectionsX;
 import org.apache.ode.utils.stl.MemberOfFunction;
 
@@ -38,7 +38,7 @@
  */
 class SchedulerThread implements Runnable {
 
-    private static final Log __log = LogFactory.getLog(SchedulerThread.class);
+    private static final Logger __log = LoggerFactory.getLogger(SchedulerThread.class);
 
     private static final int TODO_QUEUE_INITIAL_CAPACITY = 200;
 
diff --git a/scheduler-simple/src/main/java/org/apache/ode/scheduler/simple/SimpleScheduler.java b/scheduler-simple/src/main/java/org/apache/ode/scheduler/simple/SimpleScheduler.java
index 517045d..306a9fb 100644
--- a/scheduler-simple/src/main/java/org/apache/ode/scheduler/simple/SimpleScheduler.java
+++ b/scheduler-simple/src/main/java/org/apache/ode/scheduler/simple/SimpleScheduler.java
@@ -19,8 +19,8 @@
 
 package org.apache.ode.scheduler.simple;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.bpel.clapi.ClusterManager;
 import org.apache.ode.bpel.clapi.ClusterMemberListener;
 import org.apache.ode.bpel.iapi.ContextException;
@@ -54,7 +54,7 @@
  *
  */
 public class SimpleScheduler implements Scheduler, TaskRunner, ClusterMemberListener {
-    private static final Log __log = LogFactory.getLog(SimpleScheduler.class);
+    private static final Logger __log = LoggerFactory.getLogger(SimpleScheduler.class);
 
     private static final int DEFAULT_TRANSACTION_TIMEOUT = 60 * 1000;
 
diff --git a/scheduler-simple/src/test/java/org/apache/ode/scheduler/simple/RetriesTest.java b/scheduler-simple/src/test/java/org/apache/ode/scheduler/simple/RetriesTest.java
index 3872664..85778db 100644
--- a/scheduler-simple/src/test/java/org/apache/ode/scheduler/simple/RetriesTest.java
+++ b/scheduler-simple/src/test/java/org/apache/ode/scheduler/simple/RetriesTest.java
@@ -20,8 +20,8 @@
 package org.apache.ode.scheduler.simple;
 
 import org.apache.ode.bpel.iapi.Scheduler;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.geronimo.transaction.manager.GeronimoTransactionManager;
 import org.junit.After;
 import org.junit.Before;
@@ -38,7 +38,7 @@
  * @author Matthieu Riou <mriou@apache.org>
  */
 public class RetriesTest extends Assert implements Scheduler.JobProcessor {
-    private static final Log __log = LogFactory.getLog(RetriesTest.class);
+    private static final Logger __log = LoggerFactory.getLogger(RetriesTest.class);
 
     DelegateSupport _ds;
     SimpleScheduler _scheduler;
diff --git a/scheduler-simple/src/test/resources/log4j2.xml b/scheduler-simple/src/test/resources/log4j2.xml
new file mode 100644
index 0000000..9f6bc53
--- /dev/null
+++ b/scheduler-simple/src/test/resources/log4j2.xml
@@ -0,0 +1,37 @@
+<Configuration>
+    <Appenders>
+        <File name="FILE" fileName="target/test/test.log" append="false">
+            <PatternLayout pattern="%d{ABSOLUTE} %-5p [%c{1}] %m%n"/>
+        </File>
+        <Console name="STDOUT" target="SYSTEM_OUT">
+            <PatternLayout pattern="%d{ABSOLUTE} %-5p [%c{1}] %m%n"/>
+        </Console>
+        <Async name="Async">
+            <AppenderRef ref="FILE"/>
+            <AppenderRef ref="STDOUT"/>
+        </Async>
+    </Appenders>
+
+    <Loggers>
+        <Logger name="org.apache.ode" level="info" additivity="false">
+            <AppenderRef ref="FILE"/>
+        </Logger>
+        <Logger name="org.apache.axis2" level="info" additivity="false">
+            <AppenderRef ref="FILE"/>
+        </Logger>
+       <Logger name="org.hibernate" level="warn" additivity="false">
+            <AppenderRef ref="FILE"/>
+        </Logger>
+        <Logger name="org.apache.openjpa" level="warn" additivity="false">
+            <AppenderRef ref="FILE"/>
+        </Logger>
+        <Logger name="org.springframework" level="error" additivity="false">
+            <AppenderRef ref="FILE"/>
+        </Logger>
+
+        <Root level="info">
+            <AppenderRef ref="Async"/>
+        </Root>
+    </Loggers>
+
+</Configuration>
diff --git a/tools/src/main/java/org/apache/ode/tools/ClineCommandContext.java b/tools/src/main/java/org/apache/ode/tools/ClineCommandContext.java
index 4532c4a..228bf5b 100644
--- a/tools/src/main/java/org/apache/ode/tools/ClineCommandContext.java
+++ b/tools/src/main/java/org/apache/ode/tools/ClineCommandContext.java
@@ -18,13 +18,13 @@
  */
 package org.apache.ode.tools;
 
-import org.apache.commons.logging.Log;
+import org.slf4j.Logger;
 
 public class ClineCommandContext implements CommandContext {
 
-  private Log _log;
+  private Logger _log;
 
-  public ClineCommandContext(Log l) {
+  public ClineCommandContext(Logger l) {
     _log = l;
   }
 
diff --git a/tools/src/main/java/org/apache/ode/tools/CommandContext.java b/tools/src/main/java/org/apache/ode/tools/CommandContext.java
index 22e4bcd..660979a 100644
--- a/tools/src/main/java/org/apache/ode/tools/CommandContext.java
+++ b/tools/src/main/java/org/apache/ode/tools/CommandContext.java
@@ -52,46 +52,46 @@
   public void errln(String s);
 
   /**
-   * Log an error.
+   * Logger an error.
    * @param s a descriptive message.
    */
   public void error(String s);
 
   /**
-   * Log an error that resulted from a {@link Throwable}.
+   * Logger an error that resulted from a {@link Throwable}.
    * @param s a descriptive message.
    * @param t the cause.
    */
   public void error(String s, Throwable t);
 
   /**
-   * Log a warning that resulted from a {@link Throwable}
+   * Logger a warning that resulted from a {@link Throwable}
    * @param s
    * @param t
    */
   public void warn(String s, Throwable t);
 
   /**
-   * Log a warning.
+   * Logger a warning.
    * @param s a descriptive message.
    */
   public void warn(String s);
 
   /**
-   * Log an informative message.
+   * Logger an informative message.
    * @param s a descriptive message.
    */
   public void info(String s);
 
   /**
-   * Log an informative message that resulted from a {@link Throwable}.
+   * Logger an informative message that resulted from a {@link Throwable}.
    * @param s a descriptive message.
    * @param t the cause.
    */
   public void info(String s, Throwable t);
 
   /**
-   * Log a debug-level message that resulted from a {@link Throwable}.
+   * Logger a debug-level message that resulted from a {@link Throwable}.
    * @param s a descriptive message.
    * @param t the cause.
    */
@@ -99,7 +99,7 @@
   public void debug(String s, Throwable t);
 
   /**
-   * Log an debug-level message.
+   * Logger an debug-level message.
    * @param s a descriptive message.
    */
   public void debug(String s);
diff --git a/tools/src/main/java/org/apache/ode/tools/bpelc/cline/BpelC.java b/tools/src/main/java/org/apache/ode/tools/bpelc/cline/BpelC.java
index 4d4831c..194cb88 100644
--- a/tools/src/main/java/org/apache/ode/tools/bpelc/cline/BpelC.java
+++ b/tools/src/main/java/org/apache/ode/tools/bpelc/cline/BpelC.java
@@ -18,8 +18,8 @@
  */
 package org.apache.ode.tools.bpelc.cline;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.tools.ClineCommandContext;
 import org.apache.ode.tools.ExecutionException;
 import org.apache.ode.tools.bpelc.BpelCompileCommand;
@@ -33,7 +33,7 @@
 import java.io.File;
 
 public class BpelC extends BaseCommandlineTool {
-    private static final Log __log = LogFactory.getLog(BpelC.class);
+    private static final Logger __log = LoggerFactory.getLogger(BpelC.class);
 
     private static FlagWithArgument OUTPUT_DIR = new FlagWithArgument("od","directory",
             "output directory",true);
diff --git a/utils/src/main/java/org/apache/ode/utils/DOMUtils.java b/utils/src/main/java/org/apache/ode/utils/DOMUtils.java
index c2a795d..854a8bc 100644
--- a/utils/src/main/java/org/apache/ode/utils/DOMUtils.java
+++ b/utils/src/main/java/org/apache/ode/utils/DOMUtils.java
@@ -50,8 +50,8 @@
 
 import net.sf.saxon.om.Name11Checker;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.utils.sax.LoggingErrorHandler;
 import org.apache.xerces.dom.DOMOutputImpl;
 import org.apache.xerces.impl.Constants;
@@ -77,7 +77,7 @@
  */
 public class DOMUtils {
 
-    private static Log __log = LogFactory.getLog(DOMUtils.class);
+    private static Logger __log = LoggerFactory.getLogger(DOMUtils.class);
 
     /** The namespaceURI represented by the prefix <code>xmlns</code>. */
     public static final String NS_URI_XMLNS = "http://www.w3.org/2000/xmlns/";
@@ -1041,7 +1041,7 @@
                 txer = _transformerFactory.newTransformer();
             } catch (TransformerConfigurationException e) {
                 String errmsg = "Transformer configuration error!";
-                __log.fatal(errmsg, e);
+                __log.error(errmsg, e);
                 throw new Error(errmsg, e);
             }
         }
@@ -1058,7 +1058,7 @@
                     builder = __documentBuilderFactory.newDocumentBuilder();
                     builder.setErrorHandler(new LoggingErrorHandler());
                 } catch (ParserConfigurationException e) {
-                    __log.error(e);
+                    __log.error("",e);
                     throw new RuntimeException(e);
                 }
             }
diff --git a/utils/src/main/java/org/apache/ode/utils/DbIsolation.java b/utils/src/main/java/org/apache/ode/utils/DbIsolation.java
index 935a58d..7003063 100644
--- a/utils/src/main/java/org/apache/ode/utils/DbIsolation.java
+++ b/utils/src/main/java/org/apache/ode/utils/DbIsolation.java
@@ -23,14 +23,14 @@
 import java.sql.SQLException;
 import javax.sql.DataSource;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Utility to set Ode-specific isolation level on DataSource connections.
  */
 public class DbIsolation {
-    private static final Log __log = LogFactory.getLog(DbIsolation.class);
+    private static final Logger __log = LoggerFactory.getLogger(DbIsolation.class);
     private static int _isolationLevel;
 
     // Read Ode-specific isolation level configuration
diff --git a/utils/src/main/java/org/apache/ode/utils/HierarchicalProperties.java b/utils/src/main/java/org/apache/ode/utils/HierarchicalProperties.java
index b393f95..2ae9e4b 100644
--- a/utils/src/main/java/org/apache/ode/utils/HierarchicalProperties.java
+++ b/utils/src/main/java/org/apache/ode/utils/HierarchicalProperties.java
@@ -20,8 +20,8 @@
 package org.apache.ode.utils;
 
 import org.apache.commons.collections.map.MultiKeyMap;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.commons.lang.StringUtils;
 
 import javax.xml.namespace.QName;
@@ -80,7 +80,7 @@
  */
 public class HierarchicalProperties {
 
-    private static final Log log = LogFactory.getLog(HierarchicalProperties.class);
+    private static final Logger log = LoggerFactory.getLogger(HierarchicalProperties.class);
 
     public static final String ODE_PREFFIX = "ode";
 
diff --git a/utils/src/main/java/org/apache/ode/utils/LoggingInterceptor.java b/utils/src/main/java/org/apache/ode/utils/LoggingInterceptor.java
index 3a11973..affb888 100644
--- a/utils/src/main/java/org/apache/ode/utils/LoggingInterceptor.java
+++ b/utils/src/main/java/org/apache/ode/utils/LoggingInterceptor.java
@@ -29,7 +29,7 @@
 
 import javax.sql.DataSource;
 
-import org.apache.commons.logging.Log;
+import org.slf4j.Logger;
 
 public class LoggingInterceptor<T> implements InvocationHandler {
 
@@ -54,13 +54,13 @@
         PARAMSTYPES.add("setURL");
     }
 
-    private Log _log;
+    private Logger _log;
     private T _delegate;
     private Map<String, Object> _paramsByName = new TreeMap<String, Object>();
     private Map<Integer, Object> _paramsByIdx = new TreeMap<Integer, Object>();
 
 
-    public LoggingInterceptor(T delegate, Log log) {
+    public LoggingInterceptor(T delegate, Logger log) {
         _log = log;
         _delegate = delegate;
     }
@@ -166,7 +166,7 @@
         else System.out.println(str);
     }
 
-    public static DataSource createLoggingDS(DataSource ds, Log log) {
+    public static DataSource createLoggingDS(DataSource ds, Logger log) {
         return (DataSource)Proxy.newProxyInstance(ds.getClass().getClassLoader(),
                 new Class[] {DataSource.class}, new LoggingInterceptor<DataSource>(ds,log));
     }
diff --git a/utils/src/main/java/org/apache/ode/utils/NSContext.java b/utils/src/main/java/org/apache/ode/utils/NSContext.java
index 86a183a..26109ca 100644
--- a/utils/src/main/java/org/apache/ode/utils/NSContext.java
+++ b/utils/src/main/java/org/apache/ode/utils/NSContext.java
@@ -34,8 +34,8 @@
 import javax.xml.namespace.NamespaceContext;
 import javax.xml.namespace.QName;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.utils.stl.CollectionsX;
 import org.apache.ode.utils.stl.CompositeUnaryFunction;
 import org.apache.ode.utils.stl.EqualsUnaryFunction;
@@ -54,7 +54,7 @@
     private static final long serialVersionUID = 1L;
 
     /** Class-level logger. */
-    private static final Log __log = LogFactory.getLog(NSContext.class);
+    private static final Logger __log = LoggerFactory.getLogger(NSContext.class);
 
     /** Prefix-to-URI map. */
     private HashMap<String, String> _prefixToUriMap = new HashMap<String, String>() {
diff --git a/utils/src/main/java/org/apache/ode/utils/Properties.java b/utils/src/main/java/org/apache/ode/utils/Properties.java
index b7ca983..c283548 100644
--- a/utils/src/main/java/org/apache/ode/utils/Properties.java
+++ b/utils/src/main/java/org/apache/ode/utils/Properties.java
@@ -35,8 +35,8 @@
 import org.apache.commons.httpclient.params.HttpConnectionParams;
 import org.apache.commons.httpclient.params.HttpMethodParams;
 import org.apache.commons.httpclient.params.HttpParams;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.util.ArrayList;
 import java.util.Collection;
@@ -94,7 +94,7 @@
     public static final String PROP_SEND_WS_ADDRESSING_HEADERS = "ws-addressing.headers";
 
 
-    protected static final Log log = LogFactory.getLog(Properties.class);
+    protected static final Logger log = LoggerFactory.getLogger(Properties.class);
 
     public static Object[] getProxyAndHeaders(Map<String, String> properties) {
         ArrayList<Header> headers = null; // /!\ Axis2 requires an ArrayList (not a List implementation)
diff --git a/utils/src/main/java/org/apache/ode/utils/SerializableElement.java b/utils/src/main/java/org/apache/ode/utils/SerializableElement.java
index 4e868fb..6e66044 100644
--- a/utils/src/main/java/org/apache/ode/utils/SerializableElement.java
+++ b/utils/src/main/java/org/apache/ode/utils/SerializableElement.java
@@ -18,8 +18,8 @@
  */
 package org.apache.ode.utils;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import org.w3c.dom.Element;
 
@@ -35,7 +35,7 @@
  */
 public final class SerializableElement implements Serializable {
   private static final long serialVersionUID = -1L;
-  private static final Log __log = LogFactory.getLog(SerializableElement.class);
+  private static final Logger __log = LoggerFactory.getLogger(SerializableElement.class);
 
   private transient Element e;
 
diff --git a/utils/src/main/java/org/apache/ode/utils/URITemplate.java b/utils/src/main/java/org/apache/ode/utils/URITemplate.java
index ce4835e..2c4abba 100644
--- a/utils/src/main/java/org/apache/ode/utils/URITemplate.java
+++ b/utils/src/main/java/org/apache/ode/utils/URITemplate.java
@@ -21,8 +21,8 @@
 
 import org.apache.commons.httpclient.URIException;
 import org.apache.commons.httpclient.util.URIUtil;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.util.HashMap;
 import java.util.Map;
@@ -78,7 +78,7 @@
 
 public class URITemplate {
 
-    private static final Log log = LogFactory.getLog(URITemplate.class);
+    private static final Logger log = LoggerFactory.getLogger(URITemplate.class);
 
 
     public static final String EXPANSION_REGEX = "\\{[^\\}]+\\}";
diff --git a/utils/src/main/java/org/apache/ode/utils/WatchDog.java b/utils/src/main/java/org/apache/ode/utils/WatchDog.java
index 1f92cf7..56cb07f 100644
--- a/utils/src/main/java/org/apache/ode/utils/WatchDog.java
+++ b/utils/src/main/java/org/apache/ode/utils/WatchDog.java
@@ -19,8 +19,8 @@
 
 package org.apache.ode.utils;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.io.File;
 import java.util.Map;
@@ -47,7 +47,7 @@
  */
 public class WatchDog<T, C extends WatchDog.Observer> implements Runnable {
     static final public long DEFAULT_DELAY = 30000;
-    final Log log = LogFactory.getLog(WatchDog.class);
+    final Logger log = LoggerFactory.getLogger(WatchDog.class);
 
     private long expire;
     private T lastModif;
diff --git a/utils/src/main/java/org/apache/ode/utils/cli/BaseCommandlineTool.java b/utils/src/main/java/org/apache/ode/utils/cli/BaseCommandlineTool.java
index dfd2ed1..e7496ae 100644
--- a/utils/src/main/java/org/apache/ode/utils/cli/BaseCommandlineTool.java
+++ b/utils/src/main/java/org/apache/ode/utils/cli/BaseCommandlineTool.java
@@ -19,154 +19,163 @@
 
 package org.apache.ode.utils.cli;
 
-import org.apache.log4j.AppenderSkeleton;
-import org.apache.log4j.BasicConfigurator;
-import org.apache.log4j.ConsoleAppender;
-import org.apache.log4j.FileAppender;
-import org.apache.log4j.Level;
-import org.apache.log4j.Logger;
-import org.apache.log4j.PatternLayout;
-import org.apache.log4j.SimpleLayout;
+import org.apache.logging.log4j.Level;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.core.Appender;
+import org.apache.logging.log4j.core.Layout;
+import org.apache.logging.log4j.core.LoggerContext;
+import org.apache.logging.log4j.core.appender.ConsoleAppender;
+import org.apache.logging.log4j.core.appender.FileAppender;
+import org.apache.logging.log4j.core.config.AppenderRef;
+import org.apache.logging.log4j.core.config.Configuration;
+import org.apache.logging.log4j.core.config.LoggerConfig;
+import org.apache.logging.log4j.core.layout.PatternLayout;
 import org.apache.ode.utils.Version;
 import org.apache.ode.utils.fs.TempFileManager;
 import org.apache.ode.utils.msg.MessageBundle;
+import org.slf4j.Logger;
 
 import java.io.IOException;
 import java.io.PrintWriter;
+import java.nio.charset.Charset;
 
 public abstract class BaseCommandlineTool {
 
-  public static final int TERSE = 0;
+	public static final int TERSE = 0;
 
-  public static final int VERBOSE = 1;
+	public static final int VERBOSE = 1;
 
-  public static final int EFFUSIVE = 2;
+	public static final int EFFUSIVE = 2;
 
-  private static boolean _tempFileManagerRegistered = false;
+	private static boolean _tempFileManagerRegistered = false;
 
-  private static Class CLAZZ = BaseCommandlineTool.class;
+	private static Class CLAZZ = BaseCommandlineTool.class;
 
-  private static final String LOGGING_PATTERN = "%p - %d{ISO8601} - <%c> %m%n";
+	private static final String LOGGING_PATTERN = "%p - %d{ISO8601} - <%c> %m%n";
 
-  protected static final Flag HELP_FLAG = new Flag("h",
-      "print usage and help to the console and exit.", false);
+	protected static final Flag HELP_FLAG = new Flag("h", "print usage and help to the console and exit.", false);
 
-  protected static final Fragments HELP = new Fragments(new CommandlineFragment[]{HELP_FLAG});
+	protected static final Fragments HELP = new Fragments(new CommandlineFragment[] { HELP_FLAG });
 
-  protected static final Flag QUIET_F = new Flag("q",
-      "only produce error output in the event of an error.", false);
-  protected static final Flag VERBOSE_F = new Flag("v",
-      "produce verbose (INFO-level) logging output.", false);
-  protected static final Flag VERYVERBOSE_F = new Flag("vv",
-      "product effusive (DEBUG-level) logging output", false);
+	protected static final Flag QUIET_F = new Flag("q", "only produce error output in the event of an error.", false);
+	protected static final Flag VERBOSE_F = new Flag("v", "produce verbose (INFO-level) logging output.", false);
+	protected static final Flag VERYVERBOSE_F = new Flag("vv", "product effusive (DEBUG-level) logging output", false);
 
-  protected static final XorGroup LOGGING = new XorGroup(
-      "set logging output verbosity from quiet (-q), to verbose (-v), to effusive (-vv).",
-      true);
-  static {
-    LOGGING.addFragment(QUIET_F);
-    LOGGING.addFragment(VERBOSE_F);
-    LOGGING.addFragment(VERYVERBOSE_F);
-  }
+	protected static final XorGroup LOGGING = new XorGroup(
+			"set logging output verbosity from quiet (-q), to verbose (-v), to effusive (-vv).", true);
 
-  private static final CommandLineMessages __msgs = MessageBundle.getMessages(CommandLineMessages.class);
+	static {
+		LOGGING.addFragment(QUIET_F);
+		LOGGING.addFragment(VERBOSE_F);
+		LOGGING.addFragment(VERYVERBOSE_F);
+	}
 
-  /**
-   * Print program banner.
-   */
-  public static void outputHeader() {
-    if (QUIET_F.isSet()) {
-      return;
-    }
-    System.out.println(__msgs.msgCliHeader(getProgramName(), Version.getVersionName(), Version
-        .getBuildDate()));
-  }
+	private static final CommandLineMessages __msgs = MessageBundle.getMessages(CommandLineMessages.class);
 
-  /**
-   * Initialize logging appropriate for command-line utilities. The logging will
-   * be limited to error messages on standard error, unless user-specified
-   * logging options are present. Among other things, this method looks for the
-   * <code>-v</code> option and configures logging verbosity appropriately
-   *
-   * @param level
-   */
-  protected static void initLogging(int level) {
-    ConsoleAppender appender = new ConsoleAppender(new SimpleLayout());
-    appender.setName("stderr appender");
-    appender.setWriter(new PrintWriter(System.err));
-    appender.setLayout(new PatternLayout(LOGGING_PATTERN));
-    initialize(appender, level);
-    BasicConfigurator.configure(appender);
-    Logger.getRootLogger().addAppender(appender);
-  }
+	/**
+	 * Print program banner.
+	 */
+	public static void outputHeader() {
+		if (QUIET_F.isSet()) {
+			return;
+		}
+		System.out.println(__msgs.msgCliHeader(getProgramName(), Version.getVersionName(), Version.getBuildDate()));
+	}
 
-  protected static void initLogFile() throws IOException {
-    initLogFile(getLevel());
-  }
+	/**
+	 * Initialize logging appropriate for command-line utilities. The logging
+	 * will be limited to error messages on standard error, unless
+	 * user-specified logging options are present. Among other things, this
+	 * method looks for the <code>-v</code> option and configures logging
+	 * verbosity appropriately
+	 *
+	 * @param level
+	 */
+	protected static void initLogging(int level) {
+	      final LoggerContext ctx = (LoggerContext) LogManager.getContext(false);
+	      final Configuration config = ctx.getConfiguration();
+	      LoggerConfig loggerConfig = config.getLoggerConfig(LogManager.ROOT_LOGGER_NAME);
+	      Layout layout = PatternLayout.createLayout(LOGGING_PATTERN,config,null,Charset.forName("UTF-8"),true,false,null,null);
+	      Appender appender = ConsoleAppender.createAppender(layout, null, "SYSTEM_OUT", "stderr appender", "false", "true");
+	      AppenderRef ref = initialize("stderr appender", level);
+	      AppenderRef[] refs = new AppenderRef[] {ref};
+	      loggerConfig.addAppender(appender, ref.getLevel(), null);
+	      loggerConfig.setLevel(ref.getLevel());
+	      ctx.updateLoggers();
+	}
 
-  protected static void initLogFile(int level) throws IOException {
-    FileAppender appender = new FileAppender(new PatternLayout(LOGGING_PATTERN),
-        System.getProperty("ode.home") + "/logs/ode.log");
-    appender.setName("file appender");
-    initialize(appender, level);
-    BasicConfigurator.configure(appender);
-    Logger.getRootLogger().addAppender(appender);
-  }
+	protected static void initLogFile() throws IOException {
+		initLogFile(getLevel());
+	}
 
-  private static void initialize(AppenderSkeleton appender, int level) {
-    switch (level) {
-      case EFFUSIVE :
-        appender.setThreshold(Level.DEBUG);
-        break;
-      case VERBOSE :
-        appender.setThreshold(Level.INFO);
-        break;
-      default :
-        appender.setThreshold(Level.WARN);
-    }
-  }
+	protected static void initLogFile(int level) throws IOException {
+	      final LoggerContext ctx = (LoggerContext) LogManager.getContext(false);
+	      final Configuration config = ctx.getConfiguration();
+	      LoggerConfig loggerConfig = config.getLoggerConfig(LogManager.ROOT_LOGGER_NAME);
+	      Layout layout = PatternLayout.createLayout(LOGGING_PATTERN,config,null,Charset.forName("UTF-8"),true,false,null,null);
+	      Appender appender = FileAppender.createAppender(System.getProperty("ode.home") + "/logs/ode.log", "false", "false", "File", "false",
+	          "true", "true", "8192", layout, null, "false", null, config);
+	      AppenderRef ref = initialize("File", level);
+	      AppenderRef[] refs = new AppenderRef[] {ref};
+	      loggerConfig.addAppender(appender, ref.getLevel(), null);
+	      loggerConfig.setLevel(ref.getLevel());
+	      ctx.updateLoggers();
+	}
 
-  protected static void setClazz(Class c) {
-    CLAZZ = c;
-  }
+	  private static AppenderRef initialize(String name, int level) {
+	      Level appenderLevel = null;
+	      switch (level) {
+	          case EFFUSIVE :
+	              appenderLevel = Level.DEBUG;
+	          break;
+	          case VERBOSE :
+	              appenderLevel = Level.INFO;
+	          break;
+	          default :
+	              appenderLevel = Level.WARN;
+	          break;
+	    }
+	    return AppenderRef.createAppenderRef(name, appenderLevel, null);
+	  }
 
-  protected static String getProgramName() {
-    return "java " + CLAZZ.getName();
-  }
+	protected static void setClazz(Class c) {
+		CLAZZ = c;
+	}
 
-  protected static void initLogging() {
-    initLogging(getLevel());
-  }
+	protected static String getProgramName() {
+		return "java " + CLAZZ.getName();
+	}
 
-  private static int getLevel() {
-    if (QUIET_F.isSet()) {
-      return TERSE;
-    }
-    else if (VERBOSE_F.isSet()) {
-      return VERBOSE;
-    }
-    else if (VERYVERBOSE_F.isSet()) {
-      return EFFUSIVE;
-    }
-    else {
-      // none of the above.
-      return -1;
-    }
-  }
+	protected static void initLogging() {
+		initLogging(getLevel());
+	}
 
-  protected synchronized static final void registerTempFileManager() {
-    if (!_tempFileManagerRegistered) {
-      Runtime.getRuntime().addShutdownHook(new Thread() {
+	private static int getLevel() {
+		if (QUIET_F.isSet()) {
+			return TERSE;
+		} else if (VERBOSE_F.isSet()) {
+			return VERBOSE;
+		} else if (VERYVERBOSE_F.isSet()) {
+			return EFFUSIVE;
+		} else {
+			// none of the above.
+			return -1;
+		}
+	}
 
-        public void run() {
-          TempFileManager.cleanup();
-        }
-      });
-    }
-  }
+	protected synchronized static final void registerTempFileManager() {
+		if (!_tempFileManagerRegistered) {
+			Runtime.getRuntime().addShutdownHook(new Thread() {
 
-  protected static void consoleErr(String errMsg) {
-    String progName = getProgramName();
-    System.err.println(progName + ": " + errMsg);
-  }
+				public void run() {
+					TempFileManager.cleanup();
+				}
+			});
+		}
+	}
+
+	protected static void consoleErr(String errMsg) {
+		String progName = getProgramName();
+		System.err.println(progName + ": " + errMsg);
+	}
 }
diff --git a/utils/src/main/java/org/apache/ode/utils/fs/FileUtils.java b/utils/src/main/java/org/apache/ode/utils/fs/FileUtils.java
index 0dac704..ca240a8 100644
--- a/utils/src/main/java/org/apache/ode/utils/fs/FileUtils.java
+++ b/utils/src/main/java/org/apache/ode/utils/fs/FileUtils.java
@@ -24,15 +24,15 @@
 import java.util.List;
 import java.util.TreeSet;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Various file system utilities.
  */
 public class FileUtils {
 
-    private static final Log __log = LogFactory.getLog(FileUtils.class);
+    private static final Logger __log = LoggerFactory.getLogger(FileUtils.class);
 
     /**
      * Test if the given path is absolute or not.
diff --git a/utils/src/main/java/org/apache/ode/utils/fs/TempFileManager.java b/utils/src/main/java/org/apache/ode/utils/fs/TempFileManager.java
index f9185f8..7a1e62e 100644
--- a/utils/src/main/java/org/apache/ode/utils/fs/TempFileManager.java
+++ b/utils/src/main/java/org/apache/ode/utils/fs/TempFileManager.java
@@ -27,15 +27,15 @@
 import java.util.SortedSet;
 import java.util.TreeSet;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Convenience class for managing temporary files and cleanup on JVM exit.
  */
 public class TempFileManager {
 
-  private static final Log __log = LogFactory.getLog(TempFileManager.class);
+  private static final Logger __log = LoggerFactory.getLogger(TempFileManager.class);
 
   private static TempFileManager __singleton;
   private static File __baseDir;
diff --git a/utils/src/main/java/org/apache/ode/utils/jmx/SimpleMBean.java b/utils/src/main/java/org/apache/ode/utils/jmx/SimpleMBean.java
index 91bd639..b38b276 100644
--- a/utils/src/main/java/org/apache/ode/utils/jmx/SimpleMBean.java
+++ b/utils/src/main/java/org/apache/ode/utils/jmx/SimpleMBean.java
@@ -24,15 +24,15 @@
 
 import javax.management.*;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * An extension of {@link StandardMBean} with common features such as registeration,
  * notification, sequence generation, etc. "built-in."
  */
 public abstract class SimpleMBean extends StandardMBean implements MBeanRegistration, NotificationEmitter {
-  private static final Log __log = LogFactory.getLog(SimpleMBean.class);
+  private static final Logger __log = LoggerFactory.getLogger(SimpleMBean.class);
 
   protected MBeanServer _mbeanServer;
   protected ObjectName _myName;
@@ -91,7 +91,7 @@
     } catch (InstanceNotFoundException ex) {
         // ignore
     } catch (MBeanRegistrationException ex) {
-        __log.fatal("Error unregistering mbean: " + getObjectName().getCanonicalName(), ex);
+        __log.error("Error unregistering mbean: " + getObjectName().getCanonicalName(), ex);
     }
     try {
       server.registerMBean(this, getObjectName());
@@ -136,7 +136,7 @@
       return new ObjectName(buf.toString());
     } catch (Exception ex) {
       String errmsg = "DomainNodeImpl.createObjectName is broken!";
-      __log.fatal(errmsg,ex);
+      __log.error(errmsg,ex);
       throw new AssertionError(errmsg);
     }
   }
diff --git a/utils/src/main/java/org/apache/ode/utils/rmi/RMIConstants.java b/utils/src/main/java/org/apache/ode/utils/rmi/RMIConstants.java
index a462740..a6da788 100644
--- a/utils/src/main/java/org/apache/ode/utils/rmi/RMIConstants.java
+++ b/utils/src/main/java/org/apache/ode/utils/rmi/RMIConstants.java
@@ -19,15 +19,15 @@
 
 package org.apache.ode.utils.rmi;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Constant related to naming of ODE objects in JMX.
  * @deprecated DO NO USE: Find your own way to get this URL.
  */
 public final class RMIConstants {
-  private static final Log __log = LogFactory.getLog(RMIConstants.class);
+  private static final Logger __log = LoggerFactory.getLogger(RMIConstants.class);
 
 
   /**
diff --git a/utils/src/main/java/org/apache/ode/utils/sax/LoggingErrorHandler.java b/utils/src/main/java/org/apache/ode/utils/sax/LoggingErrorHandler.java
index f6e4c1d..0e679c1 100644
--- a/utils/src/main/java/org/apache/ode/utils/sax/LoggingErrorHandler.java
+++ b/utils/src/main/java/org/apache/ode/utils/sax/LoggingErrorHandler.java
@@ -22,8 +22,8 @@
 import org.apache.ode.utils.msg.CommonMessages;
 import org.apache.ode.utils.msg.MessageBundle;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.xml.sax.ErrorHandler;
 import org.xml.sax.SAXException;
 import org.xml.sax.SAXParseException;
@@ -34,8 +34,8 @@
  */
 public class LoggingErrorHandler implements ErrorHandler {
 
-  private static final Log __log = LogFactory.getLog(LoggingErrorHandler.class);
-  private Log _l;
+  private static final Logger __log = LoggerFactory.getLogger(LoggingErrorHandler.class);
+  private Logger _l;
 
   private static final String WARNING = MessageBundle.getMessages(CommonMessages.class)
       .strWarning().toUpperCase();
@@ -59,7 +59,7 @@
    * @param log
    *          the <code>Log</code> on which to dump messages.
    */
-  public LoggingErrorHandler(Log log) {
+  public LoggingErrorHandler(Logger log) {
     _l = log;
   }
 
diff --git a/utils/src/main/java/org/apache/ode/utils/trax/LogErrorListener.java b/utils/src/main/java/org/apache/ode/utils/trax/LogErrorListener.java
index 948e22b..0b6f233 100644
--- a/utils/src/main/java/org/apache/ode/utils/trax/LogErrorListener.java
+++ b/utils/src/main/java/org/apache/ode/utils/trax/LogErrorListener.java
@@ -21,13 +21,13 @@
 import javax.xml.transform.ErrorListener;
 import javax.xml.transform.TransformerException;
 
-import org.apache.commons.logging.Log;
+import org.slf4j.Logger;
 
 public class LogErrorListener implements ErrorListener {
 
-  private Log _log;
+  private Logger _log;
 
-  public LogErrorListener(Log log) {
+  public LogErrorListener(Logger log) {
     _log = log;
   }
 
@@ -42,7 +42,7 @@
 
   public void fatalError(TransformerException exception)
       throws TransformerException {
-    _log.fatal(exception.getMessageAndLocation(),exception);
+    _log.error(exception.getMessageAndLocation(),exception);
   }
 
 }
diff --git a/utils/src/main/java/org/apache/ode/utils/xml/capture/Tracker.java b/utils/src/main/java/org/apache/ode/utils/xml/capture/Tracker.java
index f51cfd3..942c96f 100644
--- a/utils/src/main/java/org/apache/ode/utils/xml/capture/Tracker.java
+++ b/utils/src/main/java/org/apache/ode/utils/xml/capture/Tracker.java
@@ -21,8 +21,8 @@
 import java.net.URI;
 import java.util.Set;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.xml.sax.Attributes;
 import org.xml.sax.ContentHandler;
 import org.xml.sax.Locator;
@@ -32,7 +32,7 @@
  * Base class for schema-specifc dependency trackers.
  */
 public abstract class Tracker implements ContentHandler {
-  private static final Log __log = LogFactory.getLog(Tracker.class);
+  private static final Logger __log = LoggerFactory.getLogger(Tracker.class);
 
   private Set<URI> references_ ;
   private URI base_;
diff --git a/utils/src/main/java/org/apache/ode/utils/xml/capture/Wsdl11Tracker.java b/utils/src/main/java/org/apache/ode/utils/xml/capture/Wsdl11Tracker.java
index 1ee2fc1..3303ef3 100644
--- a/utils/src/main/java/org/apache/ode/utils/xml/capture/Wsdl11Tracker.java
+++ b/utils/src/main/java/org/apache/ode/utils/xml/capture/Wsdl11Tracker.java
@@ -18,8 +18,8 @@
  */
 package org.apache.ode.utils.xml.capture;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.xml.sax.Attributes;
 import org.xml.sax.SAXException;
 
@@ -29,7 +29,7 @@
  * document may have in-line schemas.
  */
 public class Wsdl11Tracker extends XmlSchemaTracker {
-  private static final Log __log = LogFactory.getLog(Wsdl11Tracker.class);
+  private static final Logger __log = LoggerFactory.getLogger(Wsdl11Tracker.class);
 
   public static final String NS = "http://schemas.xmlsoap.org/wsdl/";
 
diff --git a/utils/src/main/java/org/apache/ode/utils/xml/capture/XmlSchemaTracker.java b/utils/src/main/java/org/apache/ode/utils/xml/capture/XmlSchemaTracker.java
index 0eefb0a..a6d29c3 100644
--- a/utils/src/main/java/org/apache/ode/utils/xml/capture/XmlSchemaTracker.java
+++ b/utils/src/main/java/org/apache/ode/utils/xml/capture/XmlSchemaTracker.java
@@ -18,8 +18,8 @@
  */
 package org.apache.ode.utils.xml.capture;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.xml.sax.Attributes;
 import org.xml.sax.SAXException;
 
@@ -27,7 +27,7 @@
  * {@link Tracker} for XML schema imports / includes.
  */
 public class XmlSchemaTracker extends Tracker {
-  private static final Log __log = LogFactory.getLog(XmlSchemaTracker.class);
+  private static final Logger __log = LoggerFactory.getLogger(XmlSchemaTracker.class);
 
   private static final String NS="http://www.w3.org/2001/XMLSchema" ;
 
diff --git a/utils/src/main/java/org/apache/ode/utils/xsd/CapturingXMLEntityResolver.java b/utils/src/main/java/org/apache/ode/utils/xsd/CapturingXMLEntityResolver.java
index 3242bf7..13ced9f 100644
--- a/utils/src/main/java/org/apache/ode/utils/xsd/CapturingXMLEntityResolver.java
+++ b/utils/src/main/java/org/apache/ode/utils/xsd/CapturingXMLEntityResolver.java
@@ -18,8 +18,8 @@
  */
 package org.apache.ode.utils.xsd;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.utils.StreamUtils;
 import org.apache.ode.utils.fs.FileUtils;
 import org.apache.xerces.xni.XMLResourceIdentifier;
@@ -40,8 +40,8 @@
  * "whole" of a schema document (including imports and other dependencies).
  */
 public class CapturingXMLEntityResolver implements XMLEntityResolver {
-  private static final Log __log = LogFactory
-      .getLog(CapturingXMLEntityResolver.class);
+  private static final Logger __log = LoggerFactory
+      .getLogger(CapturingXMLEntityResolver.class);
 
   private XMLEntityResolver _resolver;
 
diff --git a/utils/src/main/java/org/apache/ode/utils/xsd/LoggingXmlErrorHandler.java b/utils/src/main/java/org/apache/ode/utils/xsd/LoggingXmlErrorHandler.java
index d340555..48f447d 100644
--- a/utils/src/main/java/org/apache/ode/utils/xsd/LoggingXmlErrorHandler.java
+++ b/utils/src/main/java/org/apache/ode/utils/xsd/LoggingXmlErrorHandler.java
@@ -19,7 +19,7 @@
 
 package org.apache.ode.utils.xsd;
 
-import org.apache.commons.logging.Log;
+import org.slf4j.Logger;
 import org.apache.ode.utils.msg.MessageBundle;
 import org.apache.xerces.xni.XNIException;
 import org.apache.xerces.xni.parser.XMLErrorHandler;
@@ -31,20 +31,20 @@
  */
 public class LoggingXmlErrorHandler implements XMLErrorHandler {
 
-  private Log _log;
+  private Logger _log;
 
   private static final XsdMessages __msgs = MessageBundle.getMessages(XsdMessages.class);
 
   private XMLParseException _ex;
 
   /**
-   * Create a new instance that will output to the specified {@link Log}
+   * Create a new instance that will output to the specified {@link Logger}
    * instance.
    *
    * @param log
    *          the target log, which much be non-<code>null</code>
    */
-  public LoggingXmlErrorHandler(Log log) {
+  public LoggingXmlErrorHandler(Logger log) {
     assert log != null;
     _log = log;
   }
diff --git a/utils/src/main/java/org/apache/ode/utils/xsd/SchemaModelImpl.java b/utils/src/main/java/org/apache/ode/utils/xsd/SchemaModelImpl.java
index 072a990..53d7329 100644
--- a/utils/src/main/java/org/apache/ode/utils/xsd/SchemaModelImpl.java
+++ b/utils/src/main/java/org/apache/ode/utils/xsd/SchemaModelImpl.java
@@ -27,8 +27,8 @@
 
 import javax.xml.namespace.QName;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.xerces.dom.DOMInputImpl;
 import org.apache.xerces.impl.Constants;
 import org.apache.xerces.impl.xs.XMLSchemaLoader;
@@ -48,7 +48,7 @@
  * Xerces based schema model.
  */
 public class SchemaModelImpl implements SchemaModel {
-    private static final Log __log = LogFactory.getLog(SchemaModelImpl.class);
+    private static final Logger __log = LoggerFactory.getLogger(SchemaModelImpl.class);
     private XSModel _model;
 
     private SchemaModelImpl(XSModel model) {
@@ -99,8 +99,8 @@
             boolean isWarning = (error.getSeverity() == DOMError.SEVERITY_WARNING);
             __log.warn("Schema error", ((Exception)error.getRelatedException()));
             __log.warn(error.getLocation().getUri() + ":" + error.getLocation().getLineNumber());
-            __log.warn(error.getRelatedData());
-            __log.warn(error.getRelatedException());
+            __log.warn(error.getRelatedData().toString());
+            __log.warn(error.getRelatedException().toString());
             return isWarning;
         }
     }
diff --git a/utils/src/main/java/org/apache/ode/utils/xsd/XSUtils.java b/utils/src/main/java/org/apache/ode/utils/xsd/XSUtils.java
index 0c2cc26..7659c13 100644
--- a/utils/src/main/java/org/apache/ode/utils/xsd/XSUtils.java
+++ b/utils/src/main/java/org/apache/ode/utils/xsd/XSUtils.java
@@ -25,8 +25,8 @@
 import java.util.List;
 import java.util.Map;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.utils.msg.MessageBundle;
 import org.apache.xerces.dom.DOMInputImpl;
 import org.apache.xerces.impl.Constants;
@@ -46,7 +46,7 @@
  */
 public class XSUtils {
 
-    private static final Log __log = LogFactory.getLog(XSUtils.class);
+    private static final Logger __log = LoggerFactory.getLogger(XSUtils.class);
 
     private static final XsdMessages __msgs = MessageBundle.getMessages(XsdMessages.class);
 
@@ -145,16 +145,16 @@
      */
     static class LoggingXmlErrorHandler implements XMLErrorHandler {
 
-        private Log _log;
+        private Logger _log;
 
         private ArrayList<XMLParseException> _errors = new ArrayList<XMLParseException>();
 
         /**
-         * Create a new instance that will output to the specified {@link Log}
+         * Create a new instance that will output to the specified {@link Logger}
          * instance.
          * @param log the target log, which much be non-<code>null</code>
          */
-        public LoggingXmlErrorHandler(Log log) {
+        public LoggingXmlErrorHandler(Logger log) {
             assert log != null;
             _log = log;
         }
@@ -209,9 +209,9 @@
     static class LoggingDOMErrorHandler implements DOMErrorHandler {
 
         private ArrayList<Exception> _exceptions = new ArrayList<Exception>();
-        private Log _log;
+        private Logger _log;
 
-        public LoggingDOMErrorHandler(Log log) {
+        public LoggingDOMErrorHandler(Logger log) {
             assert log != null;
             _log = log;
         }
diff --git a/utils/src/main/java/org/apache/ode/utils/xsl/XslTransformHandler.java b/utils/src/main/java/org/apache/ode/utils/xsl/XslTransformHandler.java
index a1e0c66..547fbd9 100644
--- a/utils/src/main/java/org/apache/ode/utils/xsl/XslTransformHandler.java
+++ b/utils/src/main/java/org/apache/ode/utils/xsl/XslTransformHandler.java
@@ -38,8 +38,8 @@
 import javax.xml.transform.stream.StreamSource;
 
 import org.apache.commons.collections.map.MultiKeyMap;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.utils.DOMUtils;
 import org.w3c.dom.Document;
 import org.w3c.dom.Node;
@@ -55,7 +55,7 @@
  */
 public class XslTransformHandler {
 
-    private static final Log __log = LogFactory.getLog(XslTransformHandler.class);
+    private static final Logger __log = LoggerFactory.getLogger(XslTransformHandler.class);
 
   private static XslTransformHandler __singleton;
 
diff --git a/utils/src/test/java/org/apache/ode/utils/xsd/SchemaCaptureTest.java b/utils/src/test/java/org/apache/ode/utils/xsd/SchemaCaptureTest.java
index aa09424..b824279 100644
--- a/utils/src/test/java/org/apache/ode/utils/xsd/SchemaCaptureTest.java
+++ b/utils/src/test/java/org/apache/ode/utils/xsd/SchemaCaptureTest.java
@@ -28,8 +28,8 @@
 
 import junit.framework.TestCase;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.apache.ode.utils.StreamUtils;
 import org.apache.ode.utils.TestResources;
 import org.apache.xerces.xni.XMLResourceIdentifier;
@@ -42,7 +42,7 @@
  * Test schema capture functionality.
  */
 public class SchemaCaptureTest {
-    private static Log __log = LogFactory.getLog(SchemaCaptureTest.class);
+    private static Logger __log = LoggerFactory.getLogger(SchemaCaptureTest.class);
 
     @Test
     public void testSchemaCapture() throws Exception {
diff --git a/utils/src/test/resources/log4j2.xml b/utils/src/test/resources/log4j2.xml
new file mode 100644
index 0000000..9f6bc53
--- /dev/null
+++ b/utils/src/test/resources/log4j2.xml
@@ -0,0 +1,37 @@
+<Configuration>
+    <Appenders>
+        <File name="FILE" fileName="target/test/test.log" append="false">
+            <PatternLayout pattern="%d{ABSOLUTE} %-5p [%c{1}] %m%n"/>
+        </File>
+        <Console name="STDOUT" target="SYSTEM_OUT">
+            <PatternLayout pattern="%d{ABSOLUTE} %-5p [%c{1}] %m%n"/>
+        </Console>
+        <Async name="Async">
+            <AppenderRef ref="FILE"/>
+            <AppenderRef ref="STDOUT"/>
+        </Async>
+    </Appenders>
+
+    <Loggers>
+        <Logger name="org.apache.ode" level="info" additivity="false">
+            <AppenderRef ref="FILE"/>
+        </Logger>
+        <Logger name="org.apache.axis2" level="info" additivity="false">
+            <AppenderRef ref="FILE"/>
+        </Logger>
+       <Logger name="org.hibernate" level="warn" additivity="false">
+            <AppenderRef ref="FILE"/>
+        </Logger>
+        <Logger name="org.apache.openjpa" level="warn" additivity="false">
+            <AppenderRef ref="FILE"/>
+        </Logger>
+        <Logger name="org.springframework" level="error" additivity="false">
+            <AppenderRef ref="FILE"/>
+        </Logger>
+
+        <Root level="info">
+            <AppenderRef ref="Async"/>
+        </Root>
+    </Loggers>
+
+</Configuration>