You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by cd...@apache.org on 2012/11/28 14:28:09 UTC

svn commit: r1414669 - in /cocoon/branches/BRANCH_2_1_X: src/java/org/apache/cocoon/util/log/SLF4JLoggerAdapter.java src/java/org/apache/cocoon/util/log/SLF4JLoggerManager.java status.xml

Author: cdamioli
Date: Wed Nov 28 13:28:08 2012
New Revision: 1414669

URL: http://svn.apache.org/viewvc?rev=1414669&view=rev
Log:
COCOON-2288 Allow usage of SLF4J for traces 

Added:
    cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/util/log/SLF4JLoggerAdapter.java   (with props)
    cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/util/log/SLF4JLoggerManager.java   (with props)
Modified:
    cocoon/branches/BRANCH_2_1_X/status.xml

Added: cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/util/log/SLF4JLoggerAdapter.java
URL: http://svn.apache.org/viewvc/cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/util/log/SLF4JLoggerAdapter.java?rev=1414669&view=auto
==============================================================================
--- cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/util/log/SLF4JLoggerAdapter.java (added)
+++ cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/util/log/SLF4JLoggerAdapter.java Wed Nov 28 13:28:08 2012
@@ -0,0 +1,107 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.cocoon.util.log;
+
+import org.apache.avalon.framework.logger.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * Avalon Logger wrapping a slf4j logger.
+ * 
+ * @author <a href="mailto:cdamioli@apache.org">Cédric Damioli</a>
+ * @author <a href="mailto:lmedioni@temenos.com">Laurent Medioni</a>
+ * @version $Id$
+ */
+public class SLF4JLoggerAdapter implements Logger {
+
+    private org.slf4j.Logger slf4jLogger;
+    
+    public SLF4JLoggerAdapter(org.slf4j.Logger slf4jLogger) {
+        this.slf4jLogger = slf4jLogger;
+    }
+
+    public void debug(String message, Throwable throwable) {
+        this.slf4jLogger.debug(message, throwable);
+    }
+
+    public void debug(String message) {
+        this.slf4jLogger.debug(message); 
+    }
+
+    public void error(String message, Throwable throwable) {
+        this.slf4jLogger.error(message, throwable);
+    }
+
+    public void error(String message) {
+        this.slf4jLogger.error(message);
+    }
+
+    public void fatalError(String message, Throwable throwable) {
+        this.slf4jLogger.error(message, throwable);
+    }
+
+    public void fatalError(String message) {
+        this.slf4jLogger.error(message);
+    }
+
+    public Logger getChildLogger(String name) {
+        String current = this.slf4jLogger.getName();
+        org.slf4j.Logger child = null;
+        if (current == null || current.trim().length() == 0){
+            child = LoggerFactory.getLogger(name);              
+        } else {
+            child = LoggerFactory.getLogger(slf4jLogger.getName() + "." + name);
+        }
+        return new SLF4JLoggerAdapter(child);
+    }
+
+    public void info(String message, Throwable throwable) {
+        this.slf4jLogger.info(message, throwable);       
+    }
+
+    public void info(String message) {
+        this.slf4jLogger.info(message);  
+    }
+
+    public boolean isDebugEnabled() {
+        return this.slf4jLogger.isDebugEnabled();
+    }
+
+    public boolean isErrorEnabled() {
+        return this.slf4jLogger.isErrorEnabled();
+    }
+
+    public boolean isFatalErrorEnabled() {
+        return this.slf4jLogger.isErrorEnabled();
+    }
+
+    public boolean isInfoEnabled() {
+        return this.slf4jLogger.isInfoEnabled();
+    }
+
+    public boolean isWarnEnabled() {
+        return this.slf4jLogger.isWarnEnabled();
+    }
+
+    public void warn(String message, Throwable throwable) {
+        this.slf4jLogger.warn(message, throwable);
+    }
+
+    public void warn(String message) {
+        this.slf4jLogger.warn(message);
+    }
+}

Propchange: cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/util/log/SLF4JLoggerAdapter.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/util/log/SLF4JLoggerAdapter.java
------------------------------------------------------------------------------
    svn:keywords = Id

Propchange: cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/util/log/SLF4JLoggerAdapter.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/util/log/SLF4JLoggerManager.java
URL: http://svn.apache.org/viewvc/cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/util/log/SLF4JLoggerManager.java?rev=1414669&view=auto
==============================================================================
--- cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/util/log/SLF4JLoggerManager.java (added)
+++ cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/util/log/SLF4JLoggerManager.java Wed Nov 28 13:28:08 2012
@@ -0,0 +1,50 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.cocoon.util.log;
+
+import org.apache.avalon.excalibur.logger.AbstractLoggerManager;
+import org.apache.avalon.excalibur.logger.LoggerManager;
+import org.apache.avalon.framework.logger.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * This class implements a LoggerManager with a direct delegation to slf4j.
+ * 
+ * @author <a href="mailto:cdamioli@apache.org">Cédric Damioli</a>
+ * @author <a href="mailto:lmedioni@temenos.com">Laurent Medioni</a>
+ * @version $Id$
+ */
+public class SLF4JLoggerManager extends AbstractLoggerManager implements LoggerManager {
+
+    /**
+     * @param prefix
+     * @param switchTo
+     * @param defaultLoggerOverride
+     */
+    public SLF4JLoggerManager(String prefix, String switchTo, Logger defaultLoggerOverride) {
+        super(prefix, switchTo, defaultLoggerOverride);
+    }
+    
+    public SLF4JLoggerManager(){
+        super(null, null, null);
+    }
+    
+    protected Logger doGetLoggerForCategory(String fullCategoryName) {
+        org.slf4j.Logger logger = LoggerFactory.getLogger(fullCategoryName);
+        return new SLF4JLoggerAdapter(logger);
+    }
+}

Propchange: cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/util/log/SLF4JLoggerManager.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/util/log/SLF4JLoggerManager.java
------------------------------------------------------------------------------
    svn:keywords = Id

Propchange: cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/util/log/SLF4JLoggerManager.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: cocoon/branches/BRANCH_2_1_X/status.xml
URL: http://svn.apache.org/viewvc/cocoon/branches/BRANCH_2_1_X/status.xml?rev=1414669&r1=1414668&r2=1414669&view=diff
==============================================================================
--- cocoon/branches/BRANCH_2_1_X/status.xml (original)
+++ cocoon/branches/BRANCH_2_1_X/status.xml Wed Nov 28 13:28:08 2012
@@ -188,6 +188,9 @@
     <action dev="all" type="update">
       Starting with 2.1.12 the minimum required Java version will be 1.4.2.
     </action>
+    <action dev="CD" type="add" fixes-bug="COCOON-2288" due-to="Laurent Medioni" due-to-email="lmedioni@temenos.com">
+      Allow usage of SLF4J for traces
+    </action>
     <action dev="CD" type="fix" fixes-bug="COCOON-1529" due-to="Johannes Textor">
       I18nTranformer should consume and stop propagating start/endPrefixMapping of its namespace
     </action>