You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by ja...@apache.org on 2014/08/19 12:36:02 UTC

svn commit: r1618831 - in /ofbiz/trunk: ./ framework/base/config/ framework/base/lib/ framework/base/src/org/ofbiz/base/container/ framework/base/src/org/ofbiz/base/util/ framework/common/servicedef/ framework/common/src/org/ofbiz/common/ framework/web...

Author: jacopoc
Date: Tue Aug 19 10:36:01 2014
New Revision: 1618831

URL: http://svn.apache.org/r1618831
Log:
OFBIZ-5287: Upgrade to Log4j2

Added:
    ofbiz/trunk/framework/base/config/log4j2.xml   (with props)
    ofbiz/trunk/framework/base/lib/log4j-1.2-api-2.0.1.jar   (with props)
    ofbiz/trunk/framework/base/lib/log4j-api-2.0.1.jar   (with props)
    ofbiz/trunk/framework/base/lib/log4j-core-2.0.1.jar   (with props)
    ofbiz/trunk/framework/base/lib/log4j-jcl-2.0.1.jar   (with props)
    ofbiz/trunk/framework/base/lib/log4j-slf4j-impl-2.0.1.jar   (with props)
Removed:
    ofbiz/trunk/framework/base/config/log4j.xml
    ofbiz/trunk/framework/base/lib/avalon-util-exception-1.0.0.jar
    ofbiz/trunk/framework/base/lib/log4j-1.2.17.jar
    ofbiz/trunk/framework/base/lib/slf4j-log4j12-1.6.4.jar
    ofbiz/trunk/framework/base/src/org/ofbiz/base/util/Log4jLoggerWriter.java
    ofbiz/trunk/framework/base/src/org/ofbiz/base/util/NotifyLevel.java
Modified:
    ofbiz/trunk/LICENSE
    ofbiz/trunk/framework/base/config/debug.properties
    ofbiz/trunk/framework/base/src/org/ofbiz/base/container/ContainerLoader.java
    ofbiz/trunk/framework/base/src/org/ofbiz/base/util/Debug.java
    ofbiz/trunk/framework/common/servicedef/services.xml
    ofbiz/trunk/framework/common/src/org/ofbiz/common/CommonServices.java
    ofbiz/trunk/framework/webtools/webapp/webtools/WEB-INF/actions/log/LogConfiguration.groovy
    ofbiz/trunk/framework/webtools/webapp/webtools/WEB-INF/controller.xml
    ofbiz/trunk/framework/webtools/widget/LogForms.xml
    ofbiz/trunk/framework/webtools/widget/LogScreens.xml
    ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/PosTransaction.java

Modified: ofbiz/trunk/LICENSE
URL: http://svn.apache.org/viewvc/ofbiz/trunk/LICENSE?rev=1618831&r1=1618830&r2=1618831&view=diff
==============================================================================
--- ofbiz/trunk/LICENSE (original)
+++ ofbiz/trunk/LICENSE Tue Aug 19 10:36:01 2014
@@ -28,7 +28,11 @@ framework/base/lib/jakarta-regexp-1.5.ja
 framework/base/lib/jpim-0.1.jar
 framework/base/lib/juel-impl-2.2.7.jar
 framework/base/lib/juel-spi-2.2.7.jar
-framework/base/lib/log4j-1.2.17.jar
+framework/base/lib/log4j-1.2-api-2.0.1.jar
+framework/base/lib/log4j-api-2.0.1.jar
+framework/base/lib/log4j-core-2.0.1.jar
+framework/base/lib/log4j-jcl-2.0.1.jar
+framework/base/lib/log4j-slf4j-impl-2.0.1.jar
 framework/base/lib/mx4j-3.0.1.jar
 framework/base/lib/mx4j-remote-3.0.1.jar
 framework/base/lib/nekohtml-1.9.16.jar
@@ -1214,7 +1218,6 @@ MIT/X License:
 framework/base/lib/icu4j-52_1.jar
 framework/base/lib/jcl-over-slf4j-1.6.4.jar
 framework/base/lib/slf4j-api-1.6.4.jar
-framework/base/lib/slf4j-log4j12-1.6.4.jar
 framework/images/webapp/images/jquery/*
 framework/images/webapp/images/date/date.format-1.2.3*.js
 =========================================================================

Modified: ofbiz/trunk/framework/base/config/debug.properties
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/config/debug.properties?rev=1618831&r1=1618830&r2=1618831&view=diff
==============================================================================
--- ofbiz/trunk/framework/base/config/debug.properties (original)
+++ ofbiz/trunk/framework/base/config/debug.properties Tue Aug 19 10:36:01 2014
@@ -21,12 +21,6 @@
 # OFBiz Debug Settings
 ####
 
-# Pack Exception Report Using Avalon Exception Util
-pack.exception=true
-
-# Disable log4j config (used when other app servers handle the config)
-disable.log4j.config=false
-
 # These top level switches are used before calling Log4J, or if Log4J is not used
 print.verbose=false
 print.timing=true

Added: ofbiz/trunk/framework/base/config/log4j2.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/config/log4j2.xml?rev=1618831&view=auto
==============================================================================
--- ofbiz/trunk/framework/base/config/log4j2.xml (added)
+++ ofbiz/trunk/framework/base/config/log4j2.xml Tue Aug 19 10:36:01 2014
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Configuration monitorInterval="60">
+    <Appenders>
+        <Console name="stdout" target="SYSTEM_OUT">
+            <PatternLayout pattern="%date{COMPACT} |%-20.20thread |%-20.20logger{1}|%level{length=1}| %message%n"/>
+        </Console>
+        <RollingFile name="ofbiz" fileName="runtime/logs/ofbiz.log"
+                     filePattern="runtime/logs/ofbiz-%d{yyyy-MM-dd}-%i.log.zip">
+            <PatternLayout pattern="%date{COMPACT} |%-20.20thread |%-20.20logger{1}|%level{length=1}| %message%n"/>
+            <Policies>
+                <TimeBasedTriggeringPolicy/>
+                <SizeBasedTriggeringPolicy size="1 MB"/>
+            </Policies>
+            <DefaultRolloverStrategy max="4"/>
+        </RollingFile>
+        <RollingFile name="external" fileName="runtime/logs/external.log"
+                     filePattern="runtime/logs/external-%d{yyyy-MM-dd}-%i.log.zip">
+            <PatternLayout pattern="%date{COMPACT} |%-20.20thread |%-20.20logger{1}|%level{length=1}| %message%n"/>
+            <Policies>
+                <TimeBasedTriggeringPolicy/>
+                <SizeBasedTriggeringPolicy size="1 MB"/>
+            </Policies>
+            <DefaultRolloverStrategy max="4"/>
+        </RollingFile>
+        <Async name="async">
+            <AppenderRef ref="ofbiz"/>
+            <AppenderRef ref="stdout"/>
+        </Async>
+    </Appenders>
+    <Loggers>
+        <logger name="org.ofbiz.base.converter.Converters" level="warn"/>
+        <logger name="org.apache" level="warn" additivity="false">
+            <appender-ref ref="external"/>
+        </logger>
+        <logger name="org.apache.tomcat" level="info" additivity="true">
+            <appender-ref ref="external"/>
+        </logger>
+        <logger name="org.apache.catalina" level="info" additivity="true">
+            <appender-ref ref="external"/>
+        </logger>
+        <logger name="freemarker" level="warn" additivity="false">
+            <appender-ref ref="external"/>
+        </logger>
+
+        <Root level="all">
+            <AppenderRef ref="async"/>
+        </Root>
+    </Loggers>
+</Configuration>

Propchange: ofbiz/trunk/framework/base/config/log4j2.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: ofbiz/trunk/framework/base/config/log4j2.xml
------------------------------------------------------------------------------
    svn:keywords = Date Rev Author URL Id

Propchange: ofbiz/trunk/framework/base/config/log4j2.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: ofbiz/trunk/framework/base/lib/log4j-1.2-api-2.0.1.jar
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/lib/log4j-1.2-api-2.0.1.jar?rev=1618831&view=auto
==============================================================================
Binary file - no diff available.

Propchange: ofbiz/trunk/framework/base/lib/log4j-1.2-api-2.0.1.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: ofbiz/trunk/framework/base/lib/log4j-api-2.0.1.jar
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/lib/log4j-api-2.0.1.jar?rev=1618831&view=auto
==============================================================================
Binary file - no diff available.

Propchange: ofbiz/trunk/framework/base/lib/log4j-api-2.0.1.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: ofbiz/trunk/framework/base/lib/log4j-core-2.0.1.jar
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/lib/log4j-core-2.0.1.jar?rev=1618831&view=auto
==============================================================================
Binary file - no diff available.

Propchange: ofbiz/trunk/framework/base/lib/log4j-core-2.0.1.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: ofbiz/trunk/framework/base/lib/log4j-jcl-2.0.1.jar
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/lib/log4j-jcl-2.0.1.jar?rev=1618831&view=auto
==============================================================================
Binary file - no diff available.

Propchange: ofbiz/trunk/framework/base/lib/log4j-jcl-2.0.1.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: ofbiz/trunk/framework/base/lib/log4j-slf4j-impl-2.0.1.jar
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/lib/log4j-slf4j-impl-2.0.1.jar?rev=1618831&view=auto
==============================================================================
Binary file - no diff available.

Propchange: ofbiz/trunk/framework/base/lib/log4j-slf4j-impl-2.0.1.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Modified: ofbiz/trunk/framework/base/src/org/ofbiz/base/container/ContainerLoader.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/src/org/ofbiz/base/container/ContainerLoader.java?rev=1618831&r1=1618830&r2=1618831&view=diff
==============================================================================
--- ofbiz/trunk/framework/base/src/org/ofbiz/base/container/ContainerLoader.java (original)
+++ ofbiz/trunk/framework/base/src/org/ofbiz/base/container/ContainerLoader.java Tue Aug 19 10:36:01 2014
@@ -27,8 +27,6 @@ import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
 
-import org.apache.log4j.Appender;
-import org.apache.log4j.Logger;
 import org.ofbiz.base.component.ComponentConfig;
 import org.ofbiz.base.start.Config;
 import org.ofbiz.base.start.StartupException;
@@ -270,12 +268,6 @@ public class ContainerLoader implements 
                     Debug.logInfo("Stopped container " + container.getName(), module);
                 }
             }
-            @SuppressWarnings("unchecked")
-            Enumeration<Appender> en = Logger.getRootLogger().getAllAppenders();
-            while (en.hasMoreElements()) {
-                Appender appender = en.nextElement();
-                appender.close();
-            }
         }
     }
 }

Modified: ofbiz/trunk/framework/base/src/org/ofbiz/base/util/Debug.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/src/org/ofbiz/base/util/Debug.java?rev=1618831&r1=1618830&r2=1618831&view=diff
==============================================================================
--- ofbiz/trunk/framework/base/src/org/ofbiz/base/util/Debug.java (original)
+++ ofbiz/trunk/framework/base/src/org/ofbiz/base/util/Debug.java Tue Aug 19 10:36:01 2014
@@ -18,23 +18,15 @@
  *******************************************************************************/
 package org.ofbiz.base.util;
 
-import java.io.IOException;
 import java.io.PrintStream;
 import java.io.PrintWriter;
-import java.util.Enumeration;
 import java.util.Formatter;
 import java.util.HashMap;
 import java.util.Locale;
 import java.util.Map;
 import java.util.TimeZone;
 
-import org.apache.avalon.util.exception.ExceptionHelper;
-import org.apache.log4j.Appender;
-import org.apache.log4j.Level;
-import org.apache.log4j.Logger;
-import org.apache.log4j.PatternLayout;
-import org.apache.log4j.RollingFileAppender;
-import org.apache.log4j.spi.LoggerRepository;
+import org.apache.logging.log4j.*;
 import org.ofbiz.base.conversion.ConversionException;
 import org.ofbiz.base.conversion.DateTimeConverters.DateToString;
 
@@ -57,22 +49,20 @@ public final class Debug {
     public static final int WARNING = 5;
     public static final int ERROR = 6;
     public static final int FATAL = 7;
-    public static final int NOTIFY = 8;
 
-    public static final String[] levels = {"Always", "Verbose", "Timing", "Info", "Important", "Warning", "Error", "Fatal", "Notify"};
-    public static final String[] levelProps = {"", "print.verbose", "print.timing", "print.info", "print.important", "print.warning", "print.error", "print.fatal", "print.notify"};
-    public static final Level[] levelObjs = {Level.INFO, Level.DEBUG, Level.INFO, Level.INFO, Level.INFO, Level.WARN, Level.ERROR, Level.FATAL, NotifyLevel.NOTIFY};
+    public static final String[] levels = {"Always", "Verbose", "Timing", "Info", "Important", "Warning", "Error", "Fatal"};
+    public static final String[] levelProps = {"", "print.verbose", "print.timing", "print.info", "print.important", "print.warning", "print.error", "print.fatal"};
+    public static final Level[] levelObjs = {Level.FATAL, Level.DEBUG, Level.TRACE, Level.INFO, Level.INFO, Level.WARN, Level.ERROR, Level.FATAL};
 
     protected static Map<String, Integer> levelStringMap = new HashMap<String, Integer>();
 
     protected static PrintStream printStream = System.out;
     protected static PrintWriter printWriter = new PrintWriter(printStream);
 
-    protected static boolean levelOnCache[] = new boolean[9];
-    protected static boolean packException = true;
+    protected static boolean levelOnCache[] = new boolean[8];
     protected static final boolean useLevelOnCache = true;
 
-    protected static Logger root = Logger.getRootLogger();
+    protected static Logger root = LogManager.getRootLogger();
 
     static {
         levelStringMap.put("verbose", Debug.VERBOSE);
@@ -83,32 +73,11 @@ public final class Debug {
         levelStringMap.put("error", Debug.ERROR);
         levelStringMap.put("fatal", Debug.FATAL);
         levelStringMap.put("always", Debug.ALWAYS);
-        levelStringMap.put("notify", Debug.NOTIFY);
-
-        // initialize Log4J
-        if (!UtilProperties.propertyValueEqualsIgnoreCase("debug.properties", "disable.log4j.config", "true")) {
-            org.apache.log4j.xml.DOMConfigurator.configure(UtilURL.fromResource("log4j.xml"));
-        }
 
         // initialize levelOnCache
-        for (int i = 0; i < 9; i++) {
+        for (int i = 0; i < levelOnCache.length; i++) {
             levelOnCache[i] = (i == Debug.ALWAYS || UtilProperties.propertyValueEqualsIgnoreCase("debug.properties", levelProps[i], "true"));
         }
-
-        if (SYS_DEBUG != null) {
-            for (int x = 0; x < 8; x++) {
-                levelOnCache[x] = true;
-            }
-            LoggerRepository repo = root.getLoggerRepository();
-            Enumeration<Logger> en = UtilGenerics.cast(repo.getCurrentLoggers());
-            while (en.hasMoreElements()) {
-                Logger thisLogger = en.nextElement();
-                thisLogger.setLevel(Level.DEBUG);
-            }
-        }
-
-        // configure exception packing
-        packException = UtilProperties.propertyValueEqualsIgnoreCase("debug.properties", "pack.exception", "true");
     }
 
     public static PrintStream getPrintStream() {
@@ -126,7 +95,7 @@ public final class Debug {
 
     public static Logger getLogger(String module) {
         if (UtilValidate.isNotEmpty(module)) {
-            return Logger.getLogger(module);
+            return LogManager.getLogger(module);
         } else {
             return root;
         }
@@ -138,16 +107,6 @@ public final class Debug {
         return levelStringMap.get(levelName.toLowerCase());
     }
 
-    /** Gets an int representing the level number from a String representing the level name; if level not found defaults to Debug.INFO */
-    public static int getLevelFromStringWithDefault(String levelName) {
-        Integer levelInt = getLevelFromString(levelName);
-        if (levelInt == null) {
-            return Debug.INFO;
-        } else {
-            return levelInt;
-        }
-    }
-
     public static void log(int level, Throwable t, String msg, String module) {
         log(level, t, msg, module, "org.ofbiz.base.util.Debug", emptyParams);
     }
@@ -161,86 +120,19 @@ public final class Debug {
     }
 
     public static void log(int level, Throwable t, String msg, String module, String callingClass, Object... params) {
-        Logger logger = null;
-        boolean offSetInLogConfig = false; 
-        boolean fatalSetInLogConfig = false; 
-        boolean errorSetInLogConfig = false; 
-        boolean warnSetInLogConfig = false; 
-        boolean infoSetInLogConfig = false; 
-        boolean traceSetInLogConfig = false; 
-        boolean debugSetInLogConfig = false; 
-        boolean allSetInLogConfig = false;
-        boolean setInLogConfig = false;
-
-        if (useLog4J) {
-            logger = getLogger(module);
-                        
-            // Class
-            if (logger != null) {
-                Level loggerLevel = logger.getLevel();
-                offSetInLogConfig = Level.OFF.equals(loggerLevel);
-                fatalSetInLogConfig = Level.FATAL.equals(loggerLevel);
-                errorSetInLogConfig = Level.ERROR.equals(loggerLevel);
-                warnSetInLogConfig = Level.WARN.equals(loggerLevel);
-                infoSetInLogConfig = Level.INFO.equals(loggerLevel);
-                traceSetInLogConfig = Level.TRACE.equals(loggerLevel);
-                debugSetInLogConfig = Level.DEBUG.equals(loggerLevel);
-                allSetInLogConfig = Level.ALL.equals(loggerLevel);
-            }                
-            setInLogConfig = offSetInLogConfig || fatalSetInLogConfig || errorSetInLogConfig || warnSetInLogConfig || infoSetInLogConfig 
-                            ||  traceSetInLogConfig || debugSetInLogConfig || allSetInLogConfig;
-            // Package
-            // !setInLogConfig : for a Class logger, Class setting takes precedence on Package if both are used
-            if (!noModuleModule.equals(module) && module != null && !module.isEmpty() && !setInLogConfig) { 
-                Logger packageLogger = getLogger(module.substring(0, module.lastIndexOf(".")));
-                if (packageLogger != null) {
-                    Level packageLoggerLevel = packageLogger.getLevel();
-                    offSetInLogConfig |= Level.OFF.equals(packageLoggerLevel);
-                    fatalSetInLogConfig |= Level.FATAL.equals(packageLoggerLevel);
-                    errorSetInLogConfig |= Level.ERROR.equals(packageLoggerLevel);
-                    warnSetInLogConfig |= Level.WARN.equals(packageLoggerLevel);
-                    infoSetInLogConfig |= Level.INFO.equals(packageLoggerLevel);
-                    traceSetInLogConfig |= Level.TRACE.equals(packageLoggerLevel);
-                    debugSetInLogConfig |= Level.DEBUG.equals(packageLoggerLevel);
-                    allSetInLogConfig |= Level.ALL.equals(packageLoggerLevel);
-                }
-            }
-            setInLogConfig = offSetInLogConfig || fatalSetInLogConfig || errorSetInLogConfig || warnSetInLogConfig || infoSetInLogConfig 
-                            ||  traceSetInLogConfig || debugSetInLogConfig || allSetInLogConfig;
-        }
-
-        if (isOn(level) || setInLogConfig) {
+        if (isOn(level)) {
             if (msg != null && params.length > 0) {
                 StringBuilder sb = new StringBuilder();
                 Formatter formatter = new Formatter(sb);
                 formatter.format(msg, params);
                 msg = sb.toString();
             }
-            // pack the exception
-            if (packException && t != null) {
-                msg = System.getProperty("line.separator") + ExceptionHelper.packException(msg, t, true);
-                t = null;
-            }
 
             // log
             if (useLog4J) {
-                if (SYS_DEBUG != null) {
-                    logger.setLevel(Level.DEBUG);
-                }
-                if (offSetInLogConfig) {
-                    // Not printing anything
-                } else if (fatalSetInLogConfig && Level.FATAL.equals(levelObjs[level])
-                        || errorSetInLogConfig && Level.ERROR.equals(levelObjs[level])
-                        || warnSetInLogConfig && Level.WARN.equals(levelObjs[level])
-                        || infoSetInLogConfig && Level.INFO.equals(levelObjs[level])
-                        || debugSetInLogConfig && Level.DEBUG.equals(levelObjs[level])
-                        || traceSetInLogConfig && Level.DEBUG.equals(levelObjs[level])) {
-                    logger.log(callingClass, levelObjs[level], msg, t);
-                } else if (allSetInLogConfig) {
-                    logger.log(callingClass, Level.INFO, msg, t);
-                } else {
-                    logger.log(callingClass, levelObjs[level], msg, t);
-                }
+                Logger logger = getLogger(module);
+                //callingClass
+                logger.log(levelObjs[level], msg, t);
             } else {
                 StringBuilder prefixBuf = new StringBuilder();
 
@@ -276,7 +168,7 @@ public final class Debug {
         if (useLevelOnCache) {
             return levelOnCache[level];
         } else {
-            return (level == Debug.ALWAYS || UtilProperties.propertyValueEqualsIgnoreCase("debug", levelProps[level], "true"));
+            return (level == Debug.ALWAYS || UtilProperties.propertyValueEqualsIgnoreCase("debug.properties", levelProps[level], "true"));
         }
     }
 
@@ -481,26 +373,6 @@ public final class Debug {
         log(Debug.FATAL, t, msg, module, params);
     }
 
-    public static void logNotify(String msg, String module) {
-        log(Debug.NOTIFY, null, msg, module, emptyParams);
-    }
-
-    public static void logNotify(String msg, String module, Object... params) {
-        log(Debug.NOTIFY, null, msg, module, params);
-    }
-
-    public static void logNotify(Throwable t, String module) {
-        log(Debug.NOTIFY, t, null, module, emptyParams);
-    }
-
-    public static void logNotify(Throwable t, String msg, String module) {
-        log(Debug.NOTIFY, t, msg, module, emptyParams);
-    }
-
-    public static void logNotify(Throwable t, String msg, String module, Object... params) {
-        log(Debug.NOTIFY, t, msg, module, params);
-    }
-
     public static void set(int level, boolean on) {
         if (!useLevelOnCache)
             return;
@@ -512,72 +384,4 @@ public final class Debug {
             return true;
         return levelOnCache[level];
     }
-
-    public static synchronized Appender getNewFileAppender(String name, String logFile, long maxSize, int backupIdx, String pattern) {
-        if (pattern == null) {
-            pattern = "%-5r[%24F:%-3L:%-5p]%x %m%n";
-        }
-
-        PatternLayout layout = new PatternLayout(pattern);
-        layout.activateOptions();
-
-        RollingFileAppender newAppender = null;
-        try {
-            newAppender = new RollingFileAppender(layout, logFile, true);
-        } catch (IOException e) {
-            logFatal(e, Debug.class.getName());
-        }
-
-        if (newAppender != null) {
-            if (backupIdx > 0) {
-                newAppender.setMaxBackupIndex(backupIdx);
-            }
-            if (maxSize > 0) {
-                newAppender.setMaximumFileSize(maxSize);
-            }
-            newAppender.setThreshold(Level.DEBUG);
-            newAppender.activateOptions();
-            newAppender.setName(name);
-        }
-
-        return newAppender;
-    }
-
-    public static boolean registerFileAppender(String module, String name, String logFile, long maxSize, int backupIdx, String pattern) {
-        Logger logger = Logger.getLogger(module);
-        boolean found = false;
-
-        Appender foundAppender = logger.getAppender(name);
-        if (foundAppender == null) {
-            Enumeration<Logger> currentLoggerEnum = UtilGenerics.cast(Logger.getRootLogger().getLoggerRepository().getCurrentLoggers());
-            while (currentLoggerEnum.hasMoreElements() && foundAppender == null) {
-                Logger log = currentLoggerEnum.nextElement();
-                foundAppender = log.getAppender(name);
-            }
-        } else {
-            return true;
-        }
-
-        if (foundAppender == null) {
-            if (logFile != null) {
-                foundAppender = getNewFileAppender(name, logFile, maxSize, backupIdx, pattern);
-                if (foundAppender != null) {
-                    found = true;
-                }
-            }
-        } else {
-            found = true;
-        }
-
-        logger.addAppender(foundAppender);
-        return found;
-    }
-
-    public static boolean registerFileAppender(String module, String name, String logFile) {
-        return registerFileAppender(module, name, logFile, 0, 10, null);
-    }
-
-    public static boolean registerFileAppender(String module, String name) {
-        return registerFileAppender(module, name, null, -1, -1, null);
-    }
 }

Modified: ofbiz/trunk/framework/common/servicedef/services.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/common/servicedef/services.xml?rev=1618831&r1=1618830&r2=1618831&view=diff
==============================================================================
--- ofbiz/trunk/framework/common/servicedef/services.xml (original)
+++ ofbiz/trunk/framework/common/servicedef/services.xml Tue Aug 19 10:36:01 2014
@@ -86,13 +86,6 @@ under the License.
         <attribute name="timing" type="String" mode="IN" optional="true"/>
         <attribute name="verbose" type="String" mode="IN" optional="true"/>
     </service>
-    <service name="addOrUpdateLogger" engine="java"
-             location="org.ofbiz.common.CommonServices" invoke="addOrUpdateLogger" auth="true">
-        <description>Add/Update logger in logging system</description>
-        <attribute name="name" type="String" mode="IN" optional="false"/>
-        <attribute name="level" type="String" mode="IN" optional="false"/>
-        <attribute name="additivity" type="String" mode="IN" optional="true"/>
-    </service>
 
     <service name="displayXaDebugInfo" engine="java"
             location="org.ofbiz.common.CommonServices" invoke="displayXaDebugInfo" auth="true">

Modified: ofbiz/trunk/framework/common/src/org/ofbiz/common/CommonServices.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/common/src/org/ofbiz/common/CommonServices.java?rev=1618831&r1=1618830&r2=1618831&view=diff
==============================================================================
--- ofbiz/trunk/framework/common/src/org/ofbiz/common/CommonServices.java (original)
+++ ofbiz/trunk/framework/common/src/org/ofbiz/common/CommonServices.java Tue Aug 19 10:36:01 2014
@@ -44,8 +44,6 @@ import javax.mail.internet.MimeMessage;
 import javolution.util.FastList;
 import javolution.util.FastMap;
 
-import org.apache.log4j.Level;
-import org.apache.log4j.Logger;
 import org.ofbiz.base.metrics.Metrics;
 import org.ofbiz.base.metrics.MetricsFactory;
 import org.ofbiz.base.util.Debug;
@@ -220,23 +218,6 @@ public class CommonServices {
         return ServiceUtil.returnSuccess();
     }
 
-    public static Map<String, Object> addOrUpdateLogger(DispatchContext dctc, Map<String, ?> context) {
-        String name = (String) context.get("name");
-        String level = (String) context.get("level");
-        boolean additivity = "Y".equalsIgnoreCase((String) context.get("additivity"));
-
-        Logger logger = null;
-        if ("root".equals(name)) {
-            logger = Logger.getRootLogger();
-        } else {
-            logger = Logger.getLogger(name);
-        }
-        logger.setLevel(Level.toLevel(level));
-        logger.setAdditivity(additivity);
-
-        return ServiceUtil.returnSuccess();
-    }
-
     public static Map<String, Object> forceGc(DispatchContext dctx, Map<String, ?> context) {
         System.gc();
         return ServiceUtil.returnSuccess();

Modified: ofbiz/trunk/framework/webtools/webapp/webtools/WEB-INF/actions/log/LogConfiguration.groovy
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/webtools/webapp/webtools/WEB-INF/actions/log/LogConfiguration.groovy?rev=1618831&r1=1618830&r2=1618831&view=diff
==============================================================================
--- ofbiz/trunk/framework/webtools/webapp/webtools/WEB-INF/actions/log/LogConfiguration.groovy (original)
+++ ofbiz/trunk/framework/webtools/webapp/webtools/WEB-INF/actions/log/LogConfiguration.groovy Tue Aug 19 10:36:01 2014
@@ -16,39 +16,9 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.Enumeration;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.log4j.Logger;
-import org.apache.log4j.spi.LoggerRepository;
 
 import org.ofbiz.base.util.Debug;
-import org.ofbiz.base.util.UtilMisc;
-import org.ofbiz.entity.util.EntityUtil;
-
-
-rootLogger = Logger.getRootLogger();
-loggerRepository = rootLogger.getLoggerRepository();
-
-loggerList = [];
-for (Enumeration enumeration = loggerRepository.getCurrentLoggers(); enumeration.hasMoreElements();) {
-    logger = enumeration.nextElement();
-
-    if (logger.getLevel() != null) {
-        loggerMap = [name : logger.getName(), level : logger.getLevel(), additivity : logger.getAdditivity() ? "Y" : "N", logger : logger];
-        loggerList.add(loggerMap);
-    }
-}
-
-Collections.sort(loggerList, [compare: {l1, l2 -> l1.name.compareTo(l2.name)}] as Comparator);
-
-loggerList.add(0, [name : rootLogger.getName(), level : rootLogger.getLevel(), additivity : rootLogger.getAdditivity() ? "Y" : "N", logger : rootLogger]);
-context.loggerList = loggerList;
 
-context.defaultLogger = [name : "org.ofbiz.", level : "INFO", additivity : "Y"];
 context.activeDebugLevel = [fatal : Debug.fatalOn() ? "Y" : "N",
                             error : Debug.errorOn() ? "Y" : "N",
                             warning : Debug.warningOn() ? "Y" : "N",

Modified: ofbiz/trunk/framework/webtools/webapp/webtools/WEB-INF/controller.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/webtools/webapp/webtools/WEB-INF/controller.xml?rev=1618831&r1=1618830&r2=1618831&view=diff
==============================================================================
--- ofbiz/trunk/framework/webtools/webapp/webtools/WEB-INF/controller.xml (original)
+++ ofbiz/trunk/framework/webtools/webapp/webtools/WEB-INF/controller.xml Tue Aug 19 10:36:01 2014
@@ -244,16 +244,6 @@ under the License.
         <security https="true" auth="true"/>
         <response name="success" type="view" value="LogConfiguration"/>
     </request-map>
-    <request-map uri="AddLogger">
-        <security https="true" auth="true"/>
-        <event type="service" invoke="addOrUpdateLogger"/>
-        <response name="success" type="view" value="LogConfiguration"/>
-    </request-map>
-    <request-map uri="UpdateLogger">
-        <security https="true" auth="true"/>
-        <event type="service-multi" invoke="addOrUpdateLogger"/>
-        <response name="success" type="view" value="LogConfiguration"/>
-    </request-map>
     <request-map uri="AdjustDebugLevels">
         <security https="true" auth="true"/>
         <event type="service" invoke="adjustDebugLevels"/>

Modified: ofbiz/trunk/framework/webtools/widget/LogForms.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/webtools/widget/LogForms.xml?rev=1618831&r1=1618830&r2=1618831&view=diff
==============================================================================
--- ofbiz/trunk/framework/webtools/widget/LogForms.xml (original)
+++ ofbiz/trunk/framework/webtools/widget/LogForms.xml Tue Aug 19 10:36:01 2014
@@ -32,43 +32,4 @@ under the License.
     <field name="submit" title="${uiLabelMap.CommonUpdate}"><submit/></field>
   </form>
 
-  <form name="AddLogger" type="single" default-map-name="defaultLogger" target="AddLogger"
-    header-row-style="header-row" default-table-style="basic-table">
-    <field name="name" title="${uiLabelMap.WebtoolsLoggerName}"><text size="50"/></field>
-    <field name="level" title="${uiLabelMap.WebtoolsLoggerLevel}">
-        <drop-down>
-          <option key="OFF"/>
-          <option key="FATAL"/>
-          <option key="ERROR"/>
-          <option key="WARN"/>
-          <option key="INFO"/>
-          <option key="TRACE"/>
-          <option key="DEBUG"/>
-          <option key="ALL"/>
-        </drop-down>
-    </field>
-    <field name="additivity" title="${uiLabelMap.WebtoolsLoggerAdditivity}"><check/></field>
-    <field name="submit" title="${uiLabelMap.CommonAdd}"><submit/></field>
-  </form>
-
-  <form name="LoggerList" type="multi" target="UpdateLogger" list-name="loggerList" separate-columns="true"
-    paginate="false" odd-row-style="alternate-row" default-table-style="basic-table hover-bar">
-    <field name="name" title="${uiLabelMap.WebtoolsLoggerName}"><display/></field>
-    <field name="level" title="${uiLabelMap.WebtoolsLoggerLevel}">
-        <drop-down>
-          <option key="OFF"/>
-          <option key="FATAL"/>
-          <option key="ERROR"/>
-          <option key="WARN"/>
-          <option key="INFO"/>
-          <option key="TRACE"/>
-          <option key="DEBUG"/>
-          <option key="ALL"/>
-        </drop-down>
-    </field>
-    <field name="additivity" title="${uiLabelMap.WebtoolsLoggerAdditivity}">
-      <check/>
-    </field>
-    <field name="submit" title="${uiLabelMap.CommonUpdate}"><submit/></field>
-  </form>
 </forms>

Modified: ofbiz/trunk/framework/webtools/widget/LogScreens.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/webtools/widget/LogScreens.xml?rev=1618831&r1=1618830&r2=1618831&view=diff
==============================================================================
--- ofbiz/trunk/framework/webtools/widget/LogScreens.xml (original)
+++ ofbiz/trunk/framework/webtools/widget/LogScreens.xml Tue Aug 19 10:36:01 2014
@@ -87,12 +87,6 @@ under the License.
                          <screenlet title="${uiLabelMap.WebtoolsDebuggingLevelFormDescription}">
                              <include-form name="LevelSwitch" location="component://webtools/widget/LogForms.xml"/>
                          </screenlet>
-                         <screenlet title="${uiLabelMap.WebtoolsAddLoggerFormDescription}">
-                             <include-form name="AddLogger" location="component://webtools/widget/LogForms.xml"/>
-                         </screenlet>
-                         <screenlet title="${uiLabelMap.WebtoolsLoggerListFormDescription}">
-                             <include-form name="LoggerList" location="component://webtools/widget/LogForms.xml"/>
-                         </screenlet>
                      </decorator-section>
                  </decorator-screen>
                </widgets>

Modified: ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/PosTransaction.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/PosTransaction.java?rev=1618831&r1=1618830&r2=1618831&view=diff
==============================================================================
--- ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/PosTransaction.java (original)
+++ ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/PosTransaction.java Tue Aug 19 10:36:01 2014
@@ -36,7 +36,6 @@ import net.xoetrope.xui.helper.SwingWork
 import org.ofbiz.accounting.payment.PaymentGatewayServices;
 import org.ofbiz.base.util.Debug;
 import org.ofbiz.base.util.GeneralException;
-import org.ofbiz.base.util.Log4jLoggerWriter;
 import org.ofbiz.base.util.UtilDateTime;
 import org.ofbiz.base.util.UtilFormatOut;
 import org.ofbiz.base.util.UtilGenerics;
@@ -96,7 +95,6 @@ public class PosTransaction implements S
     public static final int INTERNAL_PAYMENT = 1;
     public static final int EXTERNAL_PAYMENT = 2;
 
-    private static PrintWriter defaultPrintWriter = new Log4jLoggerWriter(Debug.getLogger(module));
     private static PosTransaction currentTx = null;
     private static LifoSet<PosTransaction> savedTx = new LifoSet<PosTransaction>();
 
@@ -125,7 +123,7 @@ public class PosTransaction implements S
         this.session = session;
         this.terminalId = session.getId();
         this.partyId = "_NA_";
-        this.trace = defaultPrintWriter;
+        //this.trace = defaultPrintWriter;
 
         this.productStoreId = (String) session.getAttribute("productStoreId");
         this.facilityId = (String) session.getAttribute("facilityId");
@@ -1195,6 +1193,7 @@ public class PosTransaction implements S
     }
 
     private void trace(String s1, String s2, Throwable t) {
+        /*
         if (trace != null) {
             String msg = s1;
             if (UtilValidate.isNotEmpty(s2)) {
@@ -1208,6 +1207,7 @@ public class PosTransaction implements S
             trace.println("[POS @ " + terminalId + " TX:" + transactionId + "] - " + msg);
             trace.flush();
         }
+        */
     }
 
     public static synchronized PosTransaction getCurrentTx(XuiSession session) {



Re: svn commit: r1618831 - in /ofbiz/trunk: ./ framework/base/config/ framework/base/lib/ framework/base/src/org/ofbiz/base/container/ framework/base/src/org/ofbiz/base/util/ framework/common/servicedef/ framework/common/src/org/ofbiz/common/ framework/web...

Posted by Jacopo Cappellato <ja...@gmail.com>.
Jars dependencies are always tricky and I am not 100% sure but what I see is that:

* geronimo-connector-3.1.1.jar and geronimo-transaction-3.1.1.jar are using slf4j-api-1.6.4.jar;
* slf4j-api-1.6.4.jar uses log4j-slf4j-impl-2.0.1.jar

Jacopo

PS: as a side note: we probably do not need geronimo-connector-3.1.1.jar; I will check and possibly remove this jar. 

On Sep 9, 2014, at 11:42 AM, Jacques Le Roux <ja...@les7arts.com> wrote:

> Hi Jacopo,
> 
> With Log4j2 you introduced log4j-slf4j-impl-2.0.1.jar. Is it really needed by Log4j2?
> 
> This because I was looking again at our no use of slf4j. I already mentioned it in my fist comment at OFBIZ-5287.
> Then in my second comment I decided to not remove slf4j-api-1.6.4.jar because of Solr.
> Since we did not embed Solr in OFBiz and anyway reading https://cwiki.apache.org/confluence/display/solr/Configuring+Logging confirms it's not longer necessary, I want to definitely remove slf4j from OFBiz.
> 
> Jacques
> 
> Le 19/08/2014 12:36, jacopoc@apache.org a écrit :
>> Author: jacopoc
>> Date: Tue Aug 19 10:36:01 2014
>> New Revision: 1618831
>> 
>> URL: http://svn.apache.org/r1618831
>> Log:
>> OFBIZ-5287: Upgrade to Log4j2
>> 
>> Added:
>>     ofbiz/trunk/framework/base/config/log4j2.xml   (with props)
>>     ofbiz/trunk/framework/base/lib/log4j-1.2-api-2.0.1.jar   (with props)
>>     ofbiz/trunk/framework/base/lib/log4j-api-2.0.1.jar   (with props)
>>     ofbiz/trunk/framework/base/lib/log4j-core-2.0.1.jar   (with props)
>>     ofbiz/trunk/framework/base/lib/log4j-jcl-2.0.1.jar   (with props)
>>     ofbiz/trunk/framework/base/lib/log4j-slf4j-impl-2.0.1.jar   (with props)
>> Removed:
>>     ofbiz/trunk/framework/base/config/log4j.xml
>>     ofbiz/trunk/framework/base/lib/avalon-util-exception-1.0.0.jar
>>     ofbiz/trunk/framework/base/lib/log4j-1.2.17.jar
>>     ofbiz/trunk/framework/base/lib/slf4j-log4j12-1.6.4.jar
>>     ofbiz/trunk/framework/base/src/org/ofbiz/base/util/Log4jLoggerWriter.java
>>     ofbiz/trunk/framework/base/src/org/ofbiz/base/util/NotifyLevel.java
>> Modified:
>>     ofbiz/trunk/LICENSE
>>     ofbiz/trunk/framework/base/config/debug.properties
>>     ofbiz/trunk/framework/base/src/org/ofbiz/base/container/ContainerLoader.java
>>     ofbiz/trunk/framework/base/src/org/ofbiz/base/util/Debug.java
>>     ofbiz/trunk/framework/common/servicedef/services.xml
>>     ofbiz/trunk/framework/common/src/org/ofbiz/common/CommonServices.java
>>     ofbiz/trunk/framework/webtools/webapp/webtools/WEB-INF/actions/log/LogConfiguration.groovy
>>     ofbiz/trunk/framework/webtools/webapp/webtools/WEB-INF/controller.xml
>>     ofbiz/trunk/framework/webtools/widget/LogForms.xml
>>     ofbiz/trunk/framework/webtools/widget/LogScreens.xml
>>     ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/PosTransaction.java
>> 
>> Modified: ofbiz/trunk/LICENSE
>> URL: http://svn.apache.org/viewvc/ofbiz/trunk/LICENSE?rev=1618831&r1=1618830&r2=1618831&view=diff
>> ==============================================================================
>> --- ofbiz/trunk/LICENSE (original)
>> +++ ofbiz/trunk/LICENSE Tue Aug 19 10:36:01 2014
>> @@ -28,7 +28,11 @@ framework/base/lib/jakarta-regexp-1.5.ja
>>  framework/base/lib/jpim-0.1.jar
>>  framework/base/lib/juel-impl-2.2.7.jar
>>  framework/base/lib/juel-spi-2.2.7.jar
>> -framework/base/lib/log4j-1.2.17.jar
>> +framework/base/lib/log4j-1.2-api-2.0.1.jar
>> +framework/base/lib/log4j-api-2.0.1.jar
>> +framework/base/lib/log4j-core-2.0.1.jar
>> +framework/base/lib/log4j-jcl-2.0.1.jar
>> +framework/base/lib/log4j-slf4j-impl-2.0.1.jar
>>  framework/base/lib/mx4j-3.0.1.jar
>>  framework/base/lib/mx4j-remote-3.0.1.jar
>>  framework/base/lib/nekohtml-1.9.16.jar
>> @@ -1214,7 +1218,6 @@ MIT/X License:
>>  framework/base/lib/icu4j-52_1.jar
>>  framework/base/lib/jcl-over-slf4j-1.6.4.jar
>>  framework/base/lib/slf4j-api-1.6.4.jar
>> -framework/base/lib/slf4j-log4j12-1.6.4.jar
>>  framework/images/webapp/images/jquery/*
>>  framework/images/webapp/images/date/date.format-1.2.3*.js
>>  =========================================================================
>> 
>> Modified: ofbiz/trunk/framework/base/config/debug.properties
>> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/config/debug.properties?rev=1618831&r1=1618830&r2=1618831&view=diff
>> ==============================================================================
>> --- ofbiz/trunk/framework/base/config/debug.properties (original)
>> +++ ofbiz/trunk/framework/base/config/debug.properties Tue Aug 19 10:36:01 2014
>> @@ -21,12 +21,6 @@
>>  # OFBiz Debug Settings
>>  ####
>>  -# Pack Exception Report Using Avalon Exception Util
>> -pack.exception=true
>> -
>> -# Disable log4j config (used when other app servers handle the config)
>> -disable.log4j.config=false
>> -
>>  # These top level switches are used before calling Log4J, or if Log4J is not used
>>  print.verbose=false
>>  print.timing=true
>> 
>> Added: ofbiz/trunk/framework/base/config/log4j2.xml
>> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/config/log4j2.xml?rev=1618831&view=auto
>> ==============================================================================
>> --- ofbiz/trunk/framework/base/config/log4j2.xml (added)
>> +++ ofbiz/trunk/framework/base/config/log4j2.xml Tue Aug 19 10:36:01 2014
>> @@ -0,0 +1,49 @@
>> +<?xml version="1.0" encoding="UTF-8"?>
>> +<Configuration monitorInterval="60">
>> +    <Appenders>
>> +        <Console name="stdout" target="SYSTEM_OUT">
>> +            <PatternLayout pattern="%date{COMPACT} |%-20.20thread |%-20.20logger{1}|%level{length=1}| %message%n"/>
>> +        </Console>
>> +        <RollingFile name="ofbiz" fileName="runtime/logs/ofbiz.log"
>> +                     filePattern="runtime/logs/ofbiz-%d{yyyy-MM-dd}-%i.log.zip">
>> +            <PatternLayout pattern="%date{COMPACT} |%-20.20thread |%-20.20logger{1}|%level{length=1}| %message%n"/>
>> +            <Policies>
>> +                <TimeBasedTriggeringPolicy/>
>> +                <SizeBasedTriggeringPolicy size="1 MB"/>
>> +            </Policies>
>> +            <DefaultRolloverStrategy max="4"/>
>> +        </RollingFile>
>> +        <RollingFile name="external" fileName="runtime/logs/external.log"
>> +                     filePattern="runtime/logs/external-%d{yyyy-MM-dd}-%i.log.zip">
>> +            <PatternLayout pattern="%date{COMPACT} |%-20.20thread |%-20.20logger{1}|%level{length=1}| %message%n"/>
>> +            <Policies>
>> +                <TimeBasedTriggeringPolicy/>
>> +                <SizeBasedTriggeringPolicy size="1 MB"/>
>> +            </Policies>
>> +            <DefaultRolloverStrategy max="4"/>
>> +        </RollingFile>
>> +        <Async name="async">
>> +            <AppenderRef ref="ofbiz"/>
>> +            <AppenderRef ref="stdout"/>
>> +        </Async>
>> +    </Appenders>
>> +    <Loggers>
>> +        <logger name="org.ofbiz.base.converter.Converters" level="warn"/>
>> +        <logger name="org.apache" level="warn" additivity="false">
>> +            <appender-ref ref="external"/>
>> +        </logger>
>> +        <logger name="org.apache.tomcat" level="info" additivity="true">
>> +            <appender-ref ref="external"/>
>> +        </logger>
>> +        <logger name="org.apache.catalina" level="info" additivity="true">
>> +            <appender-ref ref="external"/>
>> +        </logger>
>> +        <logger name="freemarker" level="warn" additivity="false">
>> +            <appender-ref ref="external"/>
>> +        </logger>
>> +
>> +        <Root level="all">
>> +            <AppenderRef ref="async"/>
>> +        </Root>
>> +    </Loggers>
>> +</Configuration>
>> 
>> Propchange: ofbiz/trunk/framework/base/config/log4j2.xml
>> ------------------------------------------------------------------------------
>>     svn:eol-style = native
>> 
>> Propchange: ofbiz/trunk/framework/base/config/log4j2.xml
>> ------------------------------------------------------------------------------
>>     svn:keywords = Date Rev Author URL Id
>> 
>> Propchange: ofbiz/trunk/framework/base/config/log4j2.xml
>> ------------------------------------------------------------------------------
>>     svn:mime-type = text/xml
>> 
>> Added: ofbiz/trunk/framework/base/lib/log4j-1.2-api-2.0.1.jar
>> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/lib/log4j-1.2-api-2.0.1.jar?rev=1618831&view=auto
>> ==============================================================================
>> Binary file - no diff available.
>> 
>> Propchange: ofbiz/trunk/framework/base/lib/log4j-1.2-api-2.0.1.jar
>> ------------------------------------------------------------------------------
>>     svn:mime-type = application/octet-stream
>> 
>> Added: ofbiz/trunk/framework/base/lib/log4j-api-2.0.1.jar
>> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/lib/log4j-api-2.0.1.jar?rev=1618831&view=auto
>> ==============================================================================
>> Binary file - no diff available.
>> 
>> Propchange: ofbiz/trunk/framework/base/lib/log4j-api-2.0.1.jar
>> ------------------------------------------------------------------------------
>>     svn:mime-type = application/octet-stream
>> 
>> Added: ofbiz/trunk/framework/base/lib/log4j-core-2.0.1.jar
>> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/lib/log4j-core-2.0.1.jar?rev=1618831&view=auto
>> ==============================================================================
>> Binary file - no diff available.
>> 
>> Propchange: ofbiz/trunk/framework/base/lib/log4j-core-2.0.1.jar
>> ------------------------------------------------------------------------------
>>     svn:mime-type = application/octet-stream
>> 
>> Added: ofbiz/trunk/framework/base/lib/log4j-jcl-2.0.1.jar
>> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/lib/log4j-jcl-2.0.1.jar?rev=1618831&view=auto
>> ==============================================================================
>> Binary file - no diff available.
>> 
>> Propchange: ofbiz/trunk/framework/base/lib/log4j-jcl-2.0.1.jar
>> ------------------------------------------------------------------------------
>>     svn:mime-type = application/octet-stream
>> 
>> Added: ofbiz/trunk/framework/base/lib/log4j-slf4j-impl-2.0.1.jar
>> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/lib/log4j-slf4j-impl-2.0.1.jar?rev=1618831&view=auto
>> ==============================================================================
>> Binary file - no diff available.
>> 
>> Propchange: ofbiz/trunk/framework/base/lib/log4j-slf4j-impl-2.0.1.jar
>> ------------------------------------------------------------------------------
>>     svn:mime-type = application/octet-stream
>> 
>> Modified: ofbiz/trunk/framework/base/src/org/ofbiz/base/container/ContainerLoader.java
>> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/src/org/ofbiz/base/container/ContainerLoader.java?rev=1618831&r1=1618830&r2=1618831&view=diff
>> ==============================================================================
>> --- ofbiz/trunk/framework/base/src/org/ofbiz/base/container/ContainerLoader.java (original)
>> +++ ofbiz/trunk/framework/base/src/org/ofbiz/base/container/ContainerLoader.java Tue Aug 19 10:36:01 2014
>> @@ -27,8 +27,6 @@ import java.util.LinkedList;
>>  import java.util.List;
>>  import java.util.Map;
>>  -import org.apache.log4j.Appender;
>> -import org.apache.log4j.Logger;
>>  import org.ofbiz.base.component.ComponentConfig;
>>  import org.ofbiz.base.start.Config;
>>  import org.ofbiz.base.start.StartupException;
>> @@ -270,12 +268,6 @@ public class ContainerLoader implements
>>                      Debug.logInfo("Stopped container " + container.getName(), module);
>>                  }
>>              }
>> -            @SuppressWarnings("unchecked")
>> -            Enumeration<Appender> en = Logger.getRootLogger().getAllAppenders();
>> -            while (en.hasMoreElements()) {
>> -                Appender appender = en.nextElement();
>> -                appender.close();
>> -            }
>>          }
>>      }
>>  }
>> 
>> Modified: ofbiz/trunk/framework/base/src/org/ofbiz/base/util/Debug.java
>> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/src/org/ofbiz/base/util/Debug.java?rev=1618831&r1=1618830&r2=1618831&view=diff
>> ==============================================================================
>> --- ofbiz/trunk/framework/base/src/org/ofbiz/base/util/Debug.java (original)
>> +++ ofbiz/trunk/framework/base/src/org/ofbiz/base/util/Debug.java Tue Aug 19 10:36:01 2014
>> @@ -18,23 +18,15 @@
>>   *******************************************************************************/
>>  package org.ofbiz.base.util;
>>  -import java.io.IOException;
>>  import java.io.PrintStream;
>>  import java.io.PrintWriter;
>> -import java.util.Enumeration;
>>  import java.util.Formatter;
>>  import java.util.HashMap;
>>  import java.util.Locale;
>>  import java.util.Map;
>>  import java.util.TimeZone;
>>  -import org.apache.avalon.util.exception.ExceptionHelper;
>> -import org.apache.log4j.Appender;
>> -import org.apache.log4j.Level;
>> -import org.apache.log4j.Logger;
>> -import org.apache.log4j.PatternLayout;
>> -import org.apache.log4j.RollingFileAppender;
>> -import org.apache.log4j.spi.LoggerRepository;
>> +import org.apache.logging.log4j.*;
>>  import org.ofbiz.base.conversion.ConversionException;
>>  import org.ofbiz.base.conversion.DateTimeConverters.DateToString;
>>  @@ -57,22 +49,20 @@ public final class Debug {
>>      public static final int WARNING = 5;
>>      public static final int ERROR = 6;
>>      public static final int FATAL = 7;
>> -    public static final int NOTIFY = 8;
>>  -    public static final String[] levels = {"Always", "Verbose", "Timing", "Info", "Important", "Warning", "Error", "Fatal", "Notify"};
>> -    public static final String[] levelProps = {"", "print.verbose", "print.timing", "print.info", "print.important", "print.warning", "print.error", "print.fatal", "print.notify"};
>> -    public static final Level[] levelObjs = {Level.INFO, Level.DEBUG, Level.INFO, Level.INFO, Level.INFO, Level.WARN, Level.ERROR, Level.FATAL, NotifyLevel.NOTIFY};
>> +    public static final String[] levels = {"Always", "Verbose", "Timing", "Info", "Important", "Warning", "Error", "Fatal"};
>> +    public static final String[] levelProps = {"", "print.verbose", "print.timing", "print.info", "print.important", "print.warning", "print.error", "print.fatal"};
>> +    public static final Level[] levelObjs = {Level.FATAL, Level.DEBUG, Level.TRACE, Level.INFO, Level.INFO, Level.WARN, Level.ERROR, Level.FATAL};
>>        protected static Map<String, Integer> levelStringMap = new HashMap<String, Integer>();
>>        protected static PrintStream printStream = System.out;
>>      protected static PrintWriter printWriter = new PrintWriter(printStream);
>>  -    protected static boolean levelOnCache[] = new boolean[9];
>> -    protected static boolean packException = true;
>> +    protected static boolean levelOnCache[] = new boolean[8];
>>      protected static final boolean useLevelOnCache = true;
>>  -    protected static Logger root = Logger.getRootLogger();
>> +    protected static Logger root = LogManager.getRootLogger();
>>        static {
>>          levelStringMap.put("verbose", Debug.VERBOSE);
>> @@ -83,32 +73,11 @@ public final class Debug {
>>          levelStringMap.put("error", Debug.ERROR);
>>          levelStringMap.put("fatal", Debug.FATAL);
>>          levelStringMap.put("always", Debug.ALWAYS);
>> -        levelStringMap.put("notify", Debug.NOTIFY);
>> -
>> -        // initialize Log4J
>> -        if (!UtilProperties.propertyValueEqualsIgnoreCase("debug.properties", "disable.log4j.config", "true")) {
>> -            org.apache.log4j.xml.DOMConfigurator.configure(UtilURL.fromResource("log4j.xml"));
>> -        }
>>            // initialize levelOnCache
>> -        for (int i = 0; i < 9; i++) {
>> +        for (int i = 0; i < levelOnCache.length; i++) {
>>              levelOnCache[i] = (i == Debug.ALWAYS || UtilProperties.propertyValueEqualsIgnoreCase("debug.properties", levelProps[i], "true"));
>>          }
>> -
>> -        if (SYS_DEBUG != null) {
>> -            for (int x = 0; x < 8; x++) {
>> -                levelOnCache[x] = true;
>> -            }
>> -            LoggerRepository repo = root.getLoggerRepository();
>> -            Enumeration<Logger> en = UtilGenerics.cast(repo.getCurrentLoggers());
>> -            while (en.hasMoreElements()) {
>> -                Logger thisLogger = en.nextElement();
>> -                thisLogger.setLevel(Level.DEBUG);
>> -            }
>> -        }
>> -
>> -        // configure exception packing
>> -        packException = UtilProperties.propertyValueEqualsIgnoreCase("debug.properties", "pack.exception", "true");
>>      }
>>        public static PrintStream getPrintStream() {
>> @@ -126,7 +95,7 @@ public final class Debug {
>>        public static Logger getLogger(String module) {
>>          if (UtilValidate.isNotEmpty(module)) {
>> -            return Logger.getLogger(module);
>> +            return LogManager.getLogger(module);
>>          } else {
>>              return root;
>>          }
>> @@ -138,16 +107,6 @@ public final class Debug {
>>          return levelStringMap.get(levelName.toLowerCase());
>>      }
>>  -    /** Gets an int representing the level number from a String representing the level name; if level not found defaults to Debug.INFO */
>> -    public static int getLevelFromStringWithDefault(String levelName) {
>> -        Integer levelInt = getLevelFromString(levelName);
>> -        if (levelInt == null) {
>> -            return Debug.INFO;
>> -        } else {
>> -            return levelInt;
>> -        }
>> -    }
>> -
>>      public static void log(int level, Throwable t, String msg, String module) {
>>          log(level, t, msg, module, "org.ofbiz.base.util.Debug", emptyParams);
>>      }
>> @@ -161,86 +120,19 @@ public final class Debug {
>>      }
>>        public static void log(int level, Throwable t, String msg, String module, String callingClass, Object... params) {
>> -        Logger logger = null;
>> -        boolean offSetInLogConfig = false;
>> -        boolean fatalSetInLogConfig = false;
>> -        boolean errorSetInLogConfig = false;
>> -        boolean warnSetInLogConfig = false;
>> -        boolean infoSetInLogConfig = false;
>> -        boolean traceSetInLogConfig = false;
>> -        boolean debugSetInLogConfig = false;
>> -        boolean allSetInLogConfig = false;
>> -        boolean setInLogConfig = false;
>> -
>> -        if (useLog4J) {
>> -            logger = getLogger(module);
>> -
>> -            // Class
>> -            if (logger != null) {
>> -                Level loggerLevel = logger.getLevel();
>> -                offSetInLogConfig = Level.OFF.equals(loggerLevel);
>> -                fatalSetInLogConfig = Level.FATAL.equals(loggerLevel);
>> -                errorSetInLogConfig = Level.ERROR.equals(loggerLevel);
>> -                warnSetInLogConfig = Level.WARN.equals(loggerLevel);
>> -                infoSetInLogConfig = Level.INFO.equals(loggerLevel);
>> -                traceSetInLogConfig = Level.TRACE.equals(loggerLevel);
>> -                debugSetInLogConfig = Level.DEBUG.equals(loggerLevel);
>> -                allSetInLogConfig = Level.ALL.equals(loggerLevel);
>> -            }
>> -            setInLogConfig = offSetInLogConfig || fatalSetInLogConfig || errorSetInLogConfig || warnSetInLogConfig || infoSetInLogConfig
>> -                            ||  traceSetInLogConfig || debugSetInLogConfig || allSetInLogConfig;
>> -            // Package
>> -            // !setInLogConfig : for a Class logger, Class setting takes precedence on Package if both are used
>> -            if (!noModuleModule.equals(module) && module != null && !module.isEmpty() && !setInLogConfig) {
>> -                Logger packageLogger = getLogger(module.substring(0, module.lastIndexOf(".")));
>> -                if (packageLogger != null) {
>> -                    Level packageLoggerLevel = packageLogger.getLevel();
>> -                    offSetInLogConfig |= Level.OFF.equals(packageLoggerLevel);
>> -                    fatalSetInLogConfig |= Level.FATAL.equals(packageLoggerLevel);
>> -                    errorSetInLogConfig |= Level.ERROR.equals(packageLoggerLevel);
>> -                    warnSetInLogConfig |= Level.WARN.equals(packageLoggerLevel);
>> -                    infoSetInLogConfig |= Level.INFO.equals(packageLoggerLevel);
>> -                    traceSetInLogConfig |= Level.TRACE.equals(packageLoggerLevel);
>> -                    debugSetInLogConfig |= Level.DEBUG.equals(packageLoggerLevel);
>> -                    allSetInLogConfig |= Level.ALL.equals(packageLoggerLevel);
>> -                }
>> -            }
>> -            setInLogConfig = offSetInLogConfig || fatalSetInLogConfig || errorSetInLogConfig || warnSetInLogConfig || infoSetInLogConfig
>> -                            ||  traceSetInLogConfig || debugSetInLogConfig || allSetInLogConfig;
>> -        }
>> -
>> -        if (isOn(level) || setInLogConfig) {
>> +        if (isOn(level)) {
>>              if (msg != null && params.length > 0) {
>>                  StringBuilder sb = new StringBuilder();
>>                  Formatter formatter = new Formatter(sb);
>>                  formatter.format(msg, params);
>>                  msg = sb.toString();
>>              }
>> -            // pack the exception
>> -            if (packException && t != null) {
>> -                msg = System.getProperty("line.separator") + ExceptionHelper.packException(msg, t, true);
>> -                t = null;
>> -            }
>>                // log
>>              if (useLog4J) {
>> -                if (SYS_DEBUG != null) {
>> -                    logger.setLevel(Level.DEBUG);
>> -                }
>> -                if (offSetInLogConfig) {
>> -                    // Not printing anything
>> -                } else if (fatalSetInLogConfig && Level.FATAL.equals(levelObjs[level])
>> -                        || errorSetInLogConfig && Level.ERROR.equals(levelObjs[level])
>> -                        || warnSetInLogConfig && Level.WARN.equals(levelObjs[level])
>> -                        || infoSetInLogConfig && Level.INFO.equals(levelObjs[level])
>> -                        || debugSetInLogConfig && Level.DEBUG.equals(levelObjs[level])
>> -                        || traceSetInLogConfig && Level.DEBUG.equals(levelObjs[level])) {
>> -                    logger.log(callingClass, levelObjs[level], msg, t);
>> -                } else if (allSetInLogConfig) {
>> -                    logger.log(callingClass, Level.INFO, msg, t);
>> -                } else {
>> -                    logger.log(callingClass, levelObjs[level], msg, t);
>> -                }
>> +                Logger logger = getLogger(module);
>> +                //callingClass
>> +                logger.log(levelObjs[level], msg, t);
>>              } else {
>>                  StringBuilder prefixBuf = new StringBuilder();
>>  @@ -276,7 +168,7 @@ public final class Debug {
>>          if (useLevelOnCache) {
>>              return levelOnCache[level];
>>          } else {
>> -            return (level == Debug.ALWAYS || UtilProperties.propertyValueEqualsIgnoreCase("debug", levelProps[level], "true"));
>> +            return (level == Debug.ALWAYS || UtilProperties.propertyValueEqualsIgnoreCase("debug.properties", levelProps[level], "true"));
>>          }
>>      }
>>  @@ -481,26 +373,6 @@ public final class Debug {
>>          log(Debug.FATAL, t, msg, module, params);
>>      }
>>  -    public static void logNotify(String msg, String module) {
>> -        log(Debug.NOTIFY, null, msg, module, emptyParams);
>> -    }
>> -
>> -    public static void logNotify(String msg, String module, Object... params) {
>> -        log(Debug.NOTIFY, null, msg, module, params);
>> -    }
>> -
>> -    public static void logNotify(Throwable t, String module) {
>> -        log(Debug.NOTIFY, t, null, module, emptyParams);
>> -    }
>> -
>> -    public static void logNotify(Throwable t, String msg, String module) {
>> -        log(Debug.NOTIFY, t, msg, module, emptyParams);
>> -    }
>> -
>> -    public static void logNotify(Throwable t, String msg, String module, Object... params) {
>> -        log(Debug.NOTIFY, t, msg, module, params);
>> -    }
>> -
>>      public static void set(int level, boolean on) {
>>          if (!useLevelOnCache)
>>              return;
>> @@ -512,72 +384,4 @@ public final class Debug {
>>              return true;
>>          return levelOnCache[level];
>>      }
>> -
>> -    public static synchronized Appender getNewFileAppender(String name, String logFile, long maxSize, int backupIdx, String pattern) {
>> -        if (pattern == null) {
>> -            pattern = "%-5r[%24F:%-3L:%-5p]%x %m%n";
>> -        }
>> -
>> -        PatternLayout layout = new PatternLayout(pattern);
>> -        layout.activateOptions();
>> -
>> -        RollingFileAppender newAppender = null;
>> -        try {
>> -            newAppender = new RollingFileAppender(layout, logFile, true);
>> -        } catch (IOException e) {
>> -            logFatal(e, Debug.class.getName());
>> -        }
>> -
>> -        if (newAppender != null) {
>> -            if (backupIdx > 0) {
>> -                newAppender.setMaxBackupIndex(backupIdx);
>> -            }
>> -            if (maxSize > 0) {
>> -                newAppender.setMaximumFileSize(maxSize);
>> -            }
>> -            newAppender.setThreshold(Level.DEBUG);
>> -            newAppender.activateOptions();
>> -            newAppender.setName(name);
>> -        }
>> -
>> -        return newAppender;
>> -    }
>> -
>> -    public static boolean registerFileAppender(String module, String name, String logFile, long maxSize, int backupIdx, String pattern) {
>> -        Logger logger = Logger.getLogger(module);
>> -        boolean found = false;
>> -
>> -        Appender foundAppender = logger.getAppender(name);
>> -        if (foundAppender == null) {
>> -            Enumeration<Logger> currentLoggerEnum = UtilGenerics.cast(Logger.getRootLogger().getLoggerRepository().getCurrentLoggers());
>> -            while (currentLoggerEnum.hasMoreElements() && foundAppender == null) {
>> -                Logger log = currentLoggerEnum.nextElement();
>> -                foundAppender = log.getAppender(name);
>> -            }
>> -        } else {
>> -            return true;
>> -        }
>> -
>> -        if (foundAppender == null) {
>> -            if (logFile != null) {
>> -                foundAppender = getNewFileAppender(name, logFile, maxSize, backupIdx, pattern);
>> -                if (foundAppender != null) {
>> -                    found = true;
>> -                }
>> -            }
>> -        } else {
>> -            found = true;
>> -        }
>> -
>> -        logger.addAppender(foundAppender);
>> -        return found;
>> -    }
>> -
>> -    public static boolean registerFileAppender(String module, String name, String logFile) {
>> -        return registerFileAppender(module, name, logFile, 0, 10, null);
>> -    }
>> -
>> -    public static boolean registerFileAppender(String module, String name) {
>> -        return registerFileAppender(module, name, null, -1, -1, null);
>> -    }
>>  }
>> 
>> Modified: ofbiz/trunk/framework/common/servicedef/services.xml
>> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/common/servicedef/services.xml?rev=1618831&r1=1618830&r2=1618831&view=diff
>> ==============================================================================
>> --- ofbiz/trunk/framework/common/servicedef/services.xml (original)
>> +++ ofbiz/trunk/framework/common/servicedef/services.xml Tue Aug 19 10:36:01 2014
>> @@ -86,13 +86,6 @@ under the License.
>>          <attribute name="timing" type="String" mode="IN" optional="true"/>
>>          <attribute name="verbose" type="String" mode="IN" optional="true"/>
>>      </service>
>> -    <service name="addOrUpdateLogger" engine="java"
>> -             location="org.ofbiz.common.CommonServices" invoke="addOrUpdateLogger" auth="true">
>> -        <description>Add/Update logger in logging system</description>
>> -        <attribute name="name" type="String" mode="IN" optional="false"/>
>> -        <attribute name="level" type="String" mode="IN" optional="false"/>
>> -        <attribute name="additivity" type="String" mode="IN" optional="true"/>
>> -    </service>
>>        <service name="displayXaDebugInfo" engine="java"
>>              location="org.ofbiz.common.CommonServices" invoke="displayXaDebugInfo" auth="true">
>> 
>> Modified: ofbiz/trunk/framework/common/src/org/ofbiz/common/CommonServices.java
>> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/common/src/org/ofbiz/common/CommonServices.java?rev=1618831&r1=1618830&r2=1618831&view=diff
>> ==============================================================================
>> --- ofbiz/trunk/framework/common/src/org/ofbiz/common/CommonServices.java (original)
>> +++ ofbiz/trunk/framework/common/src/org/ofbiz/common/CommonServices.java Tue Aug 19 10:36:01 2014
>> @@ -44,8 +44,6 @@ import javax.mail.internet.MimeMessage;
>>  import javolution.util.FastList;
>>  import javolution.util.FastMap;
>>  -import org.apache.log4j.Level;
>> -import org.apache.log4j.Logger;
>>  import org.ofbiz.base.metrics.Metrics;
>>  import org.ofbiz.base.metrics.MetricsFactory;
>>  import org.ofbiz.base.util.Debug;
>> @@ -220,23 +218,6 @@ public class CommonServices {
>>          return ServiceUtil.returnSuccess();
>>      }
>>  -    public static Map<String, Object> addOrUpdateLogger(DispatchContext dctc, Map<String, ?> context) {
>> -        String name = (String) context.get("name");
>> -        String level = (String) context.get("level");
>> -        boolean additivity = "Y".equalsIgnoreCase((String) context.get("additivity"));
>> -
>> -        Logger logger = null;
>> -        if ("root".equals(name)) {
>> -            logger = Logger.getRootLogger();
>> -        } else {
>> -            logger = Logger.getLogger(name);
>> -        }
>> -        logger.setLevel(Level.toLevel(level));
>> -        logger.setAdditivity(additivity);
>> -
>> -        return ServiceUtil.returnSuccess();
>> -    }
>> -
>>      public static Map<String, Object> forceGc(DispatchContext dctx, Map<String, ?> context) {
>>          System.gc();
>>          return ServiceUtil.returnSuccess();
>> 
>> Modified: ofbiz/trunk/framework/webtools/webapp/webtools/WEB-INF/actions/log/LogConfiguration.groovy
>> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/webtools/webapp/webtools/WEB-INF/actions/log/LogConfiguration.groovy?rev=1618831&r1=1618830&r2=1618831&view=diff
>> ==============================================================================
>> --- ofbiz/trunk/framework/webtools/webapp/webtools/WEB-INF/actions/log/LogConfiguration.groovy (original)
>> +++ ofbiz/trunk/framework/webtools/webapp/webtools/WEB-INF/actions/log/LogConfiguration.groovy Tue Aug 19 10:36:01 2014
>> @@ -16,39 +16,9 @@
>>   * specific language governing permissions and limitations
>>   * under the License.
>>   */
>> -import java.util.Collections;
>> -import java.util.Comparator;
>> -import java.util.Enumeration;
>> -import java.util.List;
>> -import java.util.Map;
>> -
>> -import org.apache.log4j.Logger;
>> -import org.apache.log4j.spi.LoggerRepository;
>>    import org.ofbiz.base.util.Debug;
>> -import org.ofbiz.base.util.UtilMisc;
>> -import org.ofbiz.entity.util.EntityUtil;
>> -
>> -
>> -rootLogger = Logger.getRootLogger();
>> -loggerRepository = rootLogger.getLoggerRepository();
>> -
>> -loggerList = [];
>> -for (Enumeration enumeration = loggerRepository.getCurrentLoggers(); enumeration.hasMoreElements();) {
>> -    logger = enumeration.nextElement();
>> -
>> -    if (logger.getLevel() != null) {
>> -        loggerMap = [name : logger.getName(), level : logger.getLevel(), additivity : logger.getAdditivity() ? "Y" : "N", logger : logger];
>> -        loggerList.add(loggerMap);
>> -    }
>> -}
>> -
>> -Collections.sort(loggerList, [compare: {l1, l2 -> l1.name.compareTo(l2.name)}] as Comparator);
>> -
>> -loggerList.add(0, [name : rootLogger.getName(), level : rootLogger.getLevel(), additivity : rootLogger.getAdditivity() ? "Y" : "N", logger : rootLogger]);
>> -context.loggerList = loggerList;
>>  -context.defaultLogger = [name : "org.ofbiz.", level : "INFO", additivity : "Y"];
>>  context.activeDebugLevel = [fatal : Debug.fatalOn() ? "Y" : "N",
>>                              error : Debug.errorOn() ? "Y" : "N",
>>                              warning : Debug.warningOn() ? "Y" : "N",
>> 
>> Modified: ofbiz/trunk/framework/webtools/webapp/webtools/WEB-INF/controller.xml
>> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/webtools/webapp/webtools/WEB-INF/controller.xml?rev=1618831&r1=1618830&r2=1618831&view=diff
>> ==============================================================================
>> --- ofbiz/trunk/framework/webtools/webapp/webtools/WEB-INF/controller.xml (original)
>> +++ ofbiz/trunk/framework/webtools/webapp/webtools/WEB-INF/controller.xml Tue Aug 19 10:36:01 2014
>> @@ -244,16 +244,6 @@ under the License.
>>          <security https="true" auth="true"/>
>>          <response name="success" type="view" value="LogConfiguration"/>
>>      </request-map>
>> -    <request-map uri="AddLogger">
>> -        <security https="true" auth="true"/>
>> -        <event type="service" invoke="addOrUpdateLogger"/>
>> -        <response name="success" type="view" value="LogConfiguration"/>
>> -    </request-map>
>> -    <request-map uri="UpdateLogger">
>> -        <security https="true" auth="true"/>
>> -        <event type="service-multi" invoke="addOrUpdateLogger"/>
>> -        <response name="success" type="view" value="LogConfiguration"/>
>> -    </request-map>
>>      <request-map uri="AdjustDebugLevels">
>>          <security https="true" auth="true"/>
>>          <event type="service" invoke="adjustDebugLevels"/>
>> 
>> Modified: ofbiz/trunk/framework/webtools/widget/LogForms.xml
>> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/webtools/widget/LogForms.xml?rev=1618831&r1=1618830&r2=1618831&view=diff
>> ==============================================================================
>> --- ofbiz/trunk/framework/webtools/widget/LogForms.xml (original)
>> +++ ofbiz/trunk/framework/webtools/widget/LogForms.xml Tue Aug 19 10:36:01 2014
>> @@ -32,43 +32,4 @@ under the License.
>>      <field name="submit" title="${uiLabelMap.CommonUpdate}"><submit/></field>
>>    </form>
>>  -  <form name="AddLogger" type="single" default-map-name="defaultLogger" target="AddLogger"
>> -    header-row-style="header-row" default-table-style="basic-table">
>> -    <field name="name" title="${uiLabelMap.WebtoolsLoggerName}"><text size="50"/></field>
>> -    <field name="level" title="${uiLabelMap.WebtoolsLoggerLevel}">
>> -        <drop-down>
>> -          <option key="OFF"/>
>> -          <option key="FATAL"/>
>> -          <option key="ERROR"/>
>> -          <option key="WARN"/>
>> -          <option key="INFO"/>
>> -          <option key="TRACE"/>
>> -          <option key="DEBUG"/>
>> -          <option key="ALL"/>
>> -        </drop-down>
>> -    </field>
>> -    <field name="additivity" title="${uiLabelMap.WebtoolsLoggerAdditivity}"><check/></field>
>> -    <field name="submit" title="${uiLabelMap.CommonAdd}"><submit/></field>
>> -  </form>
>> -
>> -  <form name="LoggerList" type="multi" target="UpdateLogger" list-name="loggerList" separate-columns="true"
>> -    paginate="false" odd-row-style="alternate-row" default-table-style="basic-table hover-bar">
>> -    <field name="name" title="${uiLabelMap.WebtoolsLoggerName}"><display/></field>
>> -    <field name="level" title="${uiLabelMap.WebtoolsLoggerLevel}">
>> -        <drop-down>
>> -          <option key="OFF"/>
>> -          <option key="FATAL"/>
>> -          <option key="ERROR"/>
>> -          <option key="WARN"/>
>> -          <option key="INFO"/>
>> -          <option key="TRACE"/>
>> -          <option key="DEBUG"/>
>> -          <option key="ALL"/>
>> -        </drop-down>
>> -    </field>
>> -    <field name="additivity" title="${uiLabelMap.WebtoolsLoggerAdditivity}">
>> -      <check/>
>> -    </field>
>> -    <field name="submit" title="${uiLabelMap.CommonUpdate}"><submit/></field>
>> -  </form>
>>  </forms>
>> 
>> Modified: ofbiz/trunk/framework/webtools/widget/LogScreens.xml
>> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/webtools/widget/LogScreens.xml?rev=1618831&r1=1618830&r2=1618831&view=diff
>> ==============================================================================
>> --- ofbiz/trunk/framework/webtools/widget/LogScreens.xml (original)
>> +++ ofbiz/trunk/framework/webtools/widget/LogScreens.xml Tue Aug 19 10:36:01 2014
>> @@ -87,12 +87,6 @@ under the License.
>>                           <screenlet title="${uiLabelMap.WebtoolsDebuggingLevelFormDescription}">
>>                               <include-form name="LevelSwitch" location="component://webtools/widget/LogForms.xml"/>
>>                           </screenlet>
>> -                         <screenlet title="${uiLabelMap.WebtoolsAddLoggerFormDescription}">
>> -                             <include-form name="AddLogger" location="component://webtools/widget/LogForms.xml"/>
>> -                         </screenlet>
>> -                         <screenlet title="${uiLabelMap.WebtoolsLoggerListFormDescription}">
>> -                             <include-form name="LoggerList" location="component://webtools/widget/LogForms.xml"/>
>> -                         </screenlet>
>>                       </decorator-section>
>>                   </decorator-screen>
>>                 </widgets>
>> 
>> Modified: ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/PosTransaction.java
>> URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/PosTransaction.java?rev=1618831&r1=1618830&r2=1618831&view=diff
>> ==============================================================================
>> --- ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/PosTransaction.java (original)
>> +++ ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/PosTransaction.java Tue Aug 19 10:36:01 2014
>> @@ -36,7 +36,6 @@ import net.xoetrope.xui.helper.SwingWork
>>  import org.ofbiz.accounting.payment.PaymentGatewayServices;
>>  import org.ofbiz.base.util.Debug;
>>  import org.ofbiz.base.util.GeneralException;
>> -import org.ofbiz.base.util.Log4jLoggerWriter;
>>  import org.ofbiz.base.util.UtilDateTime;
>>  import org.ofbiz.base.util.UtilFormatOut;
>>  import org.ofbiz.base.util.UtilGenerics;
>> @@ -96,7 +95,6 @@ public class PosTransaction implements S
>>      public static final int INTERNAL_PAYMENT = 1;
>>      public static final int EXTERNAL_PAYMENT = 2;
>>  -    private static PrintWriter defaultPrintWriter = new Log4jLoggerWriter(Debug.getLogger(module));
>>      private static PosTransaction currentTx = null;
>>      private static LifoSet<PosTransaction> savedTx = new LifoSet<PosTransaction>();
>>  @@ -125,7 +123,7 @@ public class PosTransaction implements S
>>          this.session = session;
>>          this.terminalId = session.getId();
>>          this.partyId = "_NA_";
>> -        this.trace = defaultPrintWriter;
>> +        //this.trace = defaultPrintWriter;
>>            this.productStoreId = (String) session.getAttribute("productStoreId");
>>          this.facilityId = (String) session.getAttribute("facilityId");
>> @@ -1195,6 +1193,7 @@ public class PosTransaction implements S
>>      }
>>        private void trace(String s1, String s2, Throwable t) {
>> +        /*
>>          if (trace != null) {
>>              String msg = s1;
>>              if (UtilValidate.isNotEmpty(s2)) {
>> @@ -1208,6 +1207,7 @@ public class PosTransaction implements S
>>              trace.println("[POS @ " + terminalId + " TX:" + transactionId + "] - " + msg);
>>              trace.flush();
>>          }
>> +        */
>>      }
>>        public static synchronized PosTransaction getCurrentTx(XuiSession session) {
>> 
>> 
>> 


Re: svn commit: r1618831 - in /ofbiz/trunk: ./ framework/base/config/ framework/base/lib/ framework/base/src/org/ofbiz/base/container/ framework/base/src/org/ofbiz/base/util/ framework/common/servicedef/ framework/common/src/org/ofbiz/common/ framework/web...

Posted by Jacques Le Roux <ja...@les7arts.com>.
Hi Jacopo,

With Log4j2 you introduced log4j-slf4j-impl-2.0.1.jar. Is it really needed by Log4j2?

This because I was looking again at our no use of slf4j. I already mentioned it in my fist comment at OFBIZ-5287.
Then in my second comment I decided to not remove slf4j-api-1.6.4.jar because of Solr.
Since we did not embed Solr in OFBiz and anyway reading https://cwiki.apache.org/confluence/display/solr/Configuring+Logging confirms it's not longer 
necessary, I want to definitely remove slf4j from OFBiz.

Jacques

Le 19/08/2014 12:36, jacopoc@apache.org a écrit :
> Author: jacopoc
> Date: Tue Aug 19 10:36:01 2014
> New Revision: 1618831
>
> URL: http://svn.apache.org/r1618831
> Log:
> OFBIZ-5287: Upgrade to Log4j2
>
> Added:
>      ofbiz/trunk/framework/base/config/log4j2.xml   (with props)
>      ofbiz/trunk/framework/base/lib/log4j-1.2-api-2.0.1.jar   (with props)
>      ofbiz/trunk/framework/base/lib/log4j-api-2.0.1.jar   (with props)
>      ofbiz/trunk/framework/base/lib/log4j-core-2.0.1.jar   (with props)
>      ofbiz/trunk/framework/base/lib/log4j-jcl-2.0.1.jar   (with props)
>      ofbiz/trunk/framework/base/lib/log4j-slf4j-impl-2.0.1.jar   (with props)
> Removed:
>      ofbiz/trunk/framework/base/config/log4j.xml
>      ofbiz/trunk/framework/base/lib/avalon-util-exception-1.0.0.jar
>      ofbiz/trunk/framework/base/lib/log4j-1.2.17.jar
>      ofbiz/trunk/framework/base/lib/slf4j-log4j12-1.6.4.jar
>      ofbiz/trunk/framework/base/src/org/ofbiz/base/util/Log4jLoggerWriter.java
>      ofbiz/trunk/framework/base/src/org/ofbiz/base/util/NotifyLevel.java
> Modified:
>      ofbiz/trunk/LICENSE
>      ofbiz/trunk/framework/base/config/debug.properties
>      ofbiz/trunk/framework/base/src/org/ofbiz/base/container/ContainerLoader.java
>      ofbiz/trunk/framework/base/src/org/ofbiz/base/util/Debug.java
>      ofbiz/trunk/framework/common/servicedef/services.xml
>      ofbiz/trunk/framework/common/src/org/ofbiz/common/CommonServices.java
>      ofbiz/trunk/framework/webtools/webapp/webtools/WEB-INF/actions/log/LogConfiguration.groovy
>      ofbiz/trunk/framework/webtools/webapp/webtools/WEB-INF/controller.xml
>      ofbiz/trunk/framework/webtools/widget/LogForms.xml
>      ofbiz/trunk/framework/webtools/widget/LogScreens.xml
>      ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/PosTransaction.java
>
> Modified: ofbiz/trunk/LICENSE
> URL: http://svn.apache.org/viewvc/ofbiz/trunk/LICENSE?rev=1618831&r1=1618830&r2=1618831&view=diff
> ==============================================================================
> --- ofbiz/trunk/LICENSE (original)
> +++ ofbiz/trunk/LICENSE Tue Aug 19 10:36:01 2014
> @@ -28,7 +28,11 @@ framework/base/lib/jakarta-regexp-1.5.ja
>   framework/base/lib/jpim-0.1.jar
>   framework/base/lib/juel-impl-2.2.7.jar
>   framework/base/lib/juel-spi-2.2.7.jar
> -framework/base/lib/log4j-1.2.17.jar
> +framework/base/lib/log4j-1.2-api-2.0.1.jar
> +framework/base/lib/log4j-api-2.0.1.jar
> +framework/base/lib/log4j-core-2.0.1.jar
> +framework/base/lib/log4j-jcl-2.0.1.jar
> +framework/base/lib/log4j-slf4j-impl-2.0.1.jar
>   framework/base/lib/mx4j-3.0.1.jar
>   framework/base/lib/mx4j-remote-3.0.1.jar
>   framework/base/lib/nekohtml-1.9.16.jar
> @@ -1214,7 +1218,6 @@ MIT/X License:
>   framework/base/lib/icu4j-52_1.jar
>   framework/base/lib/jcl-over-slf4j-1.6.4.jar
>   framework/base/lib/slf4j-api-1.6.4.jar
> -framework/base/lib/slf4j-log4j12-1.6.4.jar
>   framework/images/webapp/images/jquery/*
>   framework/images/webapp/images/date/date.format-1.2.3*.js
>   =========================================================================
>
> Modified: ofbiz/trunk/framework/base/config/debug.properties
> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/config/debug.properties?rev=1618831&r1=1618830&r2=1618831&view=diff
> ==============================================================================
> --- ofbiz/trunk/framework/base/config/debug.properties (original)
> +++ ofbiz/trunk/framework/base/config/debug.properties Tue Aug 19 10:36:01 2014
> @@ -21,12 +21,6 @@
>   # OFBiz Debug Settings
>   ####
>   
> -# Pack Exception Report Using Avalon Exception Util
> -pack.exception=true
> -
> -# Disable log4j config (used when other app servers handle the config)
> -disable.log4j.config=false
> -
>   # These top level switches are used before calling Log4J, or if Log4J is not used
>   print.verbose=false
>   print.timing=true
>
> Added: ofbiz/trunk/framework/base/config/log4j2.xml
> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/config/log4j2.xml?rev=1618831&view=auto
> ==============================================================================
> --- ofbiz/trunk/framework/base/config/log4j2.xml (added)
> +++ ofbiz/trunk/framework/base/config/log4j2.xml Tue Aug 19 10:36:01 2014
> @@ -0,0 +1,49 @@
> +<?xml version="1.0" encoding="UTF-8"?>
> +<Configuration monitorInterval="60">
> +    <Appenders>
> +        <Console name="stdout" target="SYSTEM_OUT">
> +            <PatternLayout pattern="%date{COMPACT} |%-20.20thread |%-20.20logger{1}|%level{length=1}| %message%n"/>
> +        </Console>
> +        <RollingFile name="ofbiz" fileName="runtime/logs/ofbiz.log"
> +                     filePattern="runtime/logs/ofbiz-%d{yyyy-MM-dd}-%i.log.zip">
> +            <PatternLayout pattern="%date{COMPACT} |%-20.20thread |%-20.20logger{1}|%level{length=1}| %message%n"/>
> +            <Policies>
> +                <TimeBasedTriggeringPolicy/>
> +                <SizeBasedTriggeringPolicy size="1 MB"/>
> +            </Policies>
> +            <DefaultRolloverStrategy max="4"/>
> +        </RollingFile>
> +        <RollingFile name="external" fileName="runtime/logs/external.log"
> +                     filePattern="runtime/logs/external-%d{yyyy-MM-dd}-%i.log.zip">
> +            <PatternLayout pattern="%date{COMPACT} |%-20.20thread |%-20.20logger{1}|%level{length=1}| %message%n"/>
> +            <Policies>
> +                <TimeBasedTriggeringPolicy/>
> +                <SizeBasedTriggeringPolicy size="1 MB"/>
> +            </Policies>
> +            <DefaultRolloverStrategy max="4"/>
> +        </RollingFile>
> +        <Async name="async">
> +            <AppenderRef ref="ofbiz"/>
> +            <AppenderRef ref="stdout"/>
> +        </Async>
> +    </Appenders>
> +    <Loggers>
> +        <logger name="org.ofbiz.base.converter.Converters" level="warn"/>
> +        <logger name="org.apache" level="warn" additivity="false">
> +            <appender-ref ref="external"/>
> +        </logger>
> +        <logger name="org.apache.tomcat" level="info" additivity="true">
> +            <appender-ref ref="external"/>
> +        </logger>
> +        <logger name="org.apache.catalina" level="info" additivity="true">
> +            <appender-ref ref="external"/>
> +        </logger>
> +        <logger name="freemarker" level="warn" additivity="false">
> +            <appender-ref ref="external"/>
> +        </logger>
> +
> +        <Root level="all">
> +            <AppenderRef ref="async"/>
> +        </Root>
> +    </Loggers>
> +</Configuration>
>
> Propchange: ofbiz/trunk/framework/base/config/log4j2.xml
> ------------------------------------------------------------------------------
>      svn:eol-style = native
>
> Propchange: ofbiz/trunk/framework/base/config/log4j2.xml
> ------------------------------------------------------------------------------
>      svn:keywords = Date Rev Author URL Id
>
> Propchange: ofbiz/trunk/framework/base/config/log4j2.xml
> ------------------------------------------------------------------------------
>      svn:mime-type = text/xml
>
> Added: ofbiz/trunk/framework/base/lib/log4j-1.2-api-2.0.1.jar
> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/lib/log4j-1.2-api-2.0.1.jar?rev=1618831&view=auto
> ==============================================================================
> Binary file - no diff available.
>
> Propchange: ofbiz/trunk/framework/base/lib/log4j-1.2-api-2.0.1.jar
> ------------------------------------------------------------------------------
>      svn:mime-type = application/octet-stream
>
> Added: ofbiz/trunk/framework/base/lib/log4j-api-2.0.1.jar
> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/lib/log4j-api-2.0.1.jar?rev=1618831&view=auto
> ==============================================================================
> Binary file - no diff available.
>
> Propchange: ofbiz/trunk/framework/base/lib/log4j-api-2.0.1.jar
> ------------------------------------------------------------------------------
>      svn:mime-type = application/octet-stream
>
> Added: ofbiz/trunk/framework/base/lib/log4j-core-2.0.1.jar
> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/lib/log4j-core-2.0.1.jar?rev=1618831&view=auto
> ==============================================================================
> Binary file - no diff available.
>
> Propchange: ofbiz/trunk/framework/base/lib/log4j-core-2.0.1.jar
> ------------------------------------------------------------------------------
>      svn:mime-type = application/octet-stream
>
> Added: ofbiz/trunk/framework/base/lib/log4j-jcl-2.0.1.jar
> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/lib/log4j-jcl-2.0.1.jar?rev=1618831&view=auto
> ==============================================================================
> Binary file - no diff available.
>
> Propchange: ofbiz/trunk/framework/base/lib/log4j-jcl-2.0.1.jar
> ------------------------------------------------------------------------------
>      svn:mime-type = application/octet-stream
>
> Added: ofbiz/trunk/framework/base/lib/log4j-slf4j-impl-2.0.1.jar
> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/lib/log4j-slf4j-impl-2.0.1.jar?rev=1618831&view=auto
> ==============================================================================
> Binary file - no diff available.
>
> Propchange: ofbiz/trunk/framework/base/lib/log4j-slf4j-impl-2.0.1.jar
> ------------------------------------------------------------------------------
>      svn:mime-type = application/octet-stream
>
> Modified: ofbiz/trunk/framework/base/src/org/ofbiz/base/container/ContainerLoader.java
> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/src/org/ofbiz/base/container/ContainerLoader.java?rev=1618831&r1=1618830&r2=1618831&view=diff
> ==============================================================================
> --- ofbiz/trunk/framework/base/src/org/ofbiz/base/container/ContainerLoader.java (original)
> +++ ofbiz/trunk/framework/base/src/org/ofbiz/base/container/ContainerLoader.java Tue Aug 19 10:36:01 2014
> @@ -27,8 +27,6 @@ import java.util.LinkedList;
>   import java.util.List;
>   import java.util.Map;
>   
> -import org.apache.log4j.Appender;
> -import org.apache.log4j.Logger;
>   import org.ofbiz.base.component.ComponentConfig;
>   import org.ofbiz.base.start.Config;
>   import org.ofbiz.base.start.StartupException;
> @@ -270,12 +268,6 @@ public class ContainerLoader implements
>                       Debug.logInfo("Stopped container " + container.getName(), module);
>                   }
>               }
> -            @SuppressWarnings("unchecked")
> -            Enumeration<Appender> en = Logger.getRootLogger().getAllAppenders();
> -            while (en.hasMoreElements()) {
> -                Appender appender = en.nextElement();
> -                appender.close();
> -            }
>           }
>       }
>   }
>
> Modified: ofbiz/trunk/framework/base/src/org/ofbiz/base/util/Debug.java
> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/src/org/ofbiz/base/util/Debug.java?rev=1618831&r1=1618830&r2=1618831&view=diff
> ==============================================================================
> --- ofbiz/trunk/framework/base/src/org/ofbiz/base/util/Debug.java (original)
> +++ ofbiz/trunk/framework/base/src/org/ofbiz/base/util/Debug.java Tue Aug 19 10:36:01 2014
> @@ -18,23 +18,15 @@
>    *******************************************************************************/
>   package org.ofbiz.base.util;
>   
> -import java.io.IOException;
>   import java.io.PrintStream;
>   import java.io.PrintWriter;
> -import java.util.Enumeration;
>   import java.util.Formatter;
>   import java.util.HashMap;
>   import java.util.Locale;
>   import java.util.Map;
>   import java.util.TimeZone;
>   
> -import org.apache.avalon.util.exception.ExceptionHelper;
> -import org.apache.log4j.Appender;
> -import org.apache.log4j.Level;
> -import org.apache.log4j.Logger;
> -import org.apache.log4j.PatternLayout;
> -import org.apache.log4j.RollingFileAppender;
> -import org.apache.log4j.spi.LoggerRepository;
> +import org.apache.logging.log4j.*;
>   import org.ofbiz.base.conversion.ConversionException;
>   import org.ofbiz.base.conversion.DateTimeConverters.DateToString;
>   
> @@ -57,22 +49,20 @@ public final class Debug {
>       public static final int WARNING = 5;
>       public static final int ERROR = 6;
>       public static final int FATAL = 7;
> -    public static final int NOTIFY = 8;
>   
> -    public static final String[] levels = {"Always", "Verbose", "Timing", "Info", "Important", "Warning", "Error", "Fatal", "Notify"};
> -    public static final String[] levelProps = {"", "print.verbose", "print.timing", "print.info", "print.important", "print.warning", "print.error", "print.fatal", "print.notify"};
> -    public static final Level[] levelObjs = {Level.INFO, Level.DEBUG, Level.INFO, Level.INFO, Level.INFO, Level.WARN, Level.ERROR, Level.FATAL, NotifyLevel.NOTIFY};
> +    public static final String[] levels = {"Always", "Verbose", "Timing", "Info", "Important", "Warning", "Error", "Fatal"};
> +    public static final String[] levelProps = {"", "print.verbose", "print.timing", "print.info", "print.important", "print.warning", "print.error", "print.fatal"};
> +    public static final Level[] levelObjs = {Level.FATAL, Level.DEBUG, Level.TRACE, Level.INFO, Level.INFO, Level.WARN, Level.ERROR, Level.FATAL};
>   
>       protected static Map<String, Integer> levelStringMap = new HashMap<String, Integer>();
>   
>       protected static PrintStream printStream = System.out;
>       protected static PrintWriter printWriter = new PrintWriter(printStream);
>   
> -    protected static boolean levelOnCache[] = new boolean[9];
> -    protected static boolean packException = true;
> +    protected static boolean levelOnCache[] = new boolean[8];
>       protected static final boolean useLevelOnCache = true;
>   
> -    protected static Logger root = Logger.getRootLogger();
> +    protected static Logger root = LogManager.getRootLogger();
>   
>       static {
>           levelStringMap.put("verbose", Debug.VERBOSE);
> @@ -83,32 +73,11 @@ public final class Debug {
>           levelStringMap.put("error", Debug.ERROR);
>           levelStringMap.put("fatal", Debug.FATAL);
>           levelStringMap.put("always", Debug.ALWAYS);
> -        levelStringMap.put("notify", Debug.NOTIFY);
> -
> -        // initialize Log4J
> -        if (!UtilProperties.propertyValueEqualsIgnoreCase("debug.properties", "disable.log4j.config", "true")) {
> -            org.apache.log4j.xml.DOMConfigurator.configure(UtilURL.fromResource("log4j.xml"));
> -        }
>   
>           // initialize levelOnCache
> -        for (int i = 0; i < 9; i++) {
> +        for (int i = 0; i < levelOnCache.length; i++) {
>               levelOnCache[i] = (i == Debug.ALWAYS || UtilProperties.propertyValueEqualsIgnoreCase("debug.properties", levelProps[i], "true"));
>           }
> -
> -        if (SYS_DEBUG != null) {
> -            for (int x = 0; x < 8; x++) {
> -                levelOnCache[x] = true;
> -            }
> -            LoggerRepository repo = root.getLoggerRepository();
> -            Enumeration<Logger> en = UtilGenerics.cast(repo.getCurrentLoggers());
> -            while (en.hasMoreElements()) {
> -                Logger thisLogger = en.nextElement();
> -                thisLogger.setLevel(Level.DEBUG);
> -            }
> -        }
> -
> -        // configure exception packing
> -        packException = UtilProperties.propertyValueEqualsIgnoreCase("debug.properties", "pack.exception", "true");
>       }
>   
>       public static PrintStream getPrintStream() {
> @@ -126,7 +95,7 @@ public final class Debug {
>   
>       public static Logger getLogger(String module) {
>           if (UtilValidate.isNotEmpty(module)) {
> -            return Logger.getLogger(module);
> +            return LogManager.getLogger(module);
>           } else {
>               return root;
>           }
> @@ -138,16 +107,6 @@ public final class Debug {
>           return levelStringMap.get(levelName.toLowerCase());
>       }
>   
> -    /** Gets an int representing the level number from a String representing the level name; if level not found defaults to Debug.INFO */
> -    public static int getLevelFromStringWithDefault(String levelName) {
> -        Integer levelInt = getLevelFromString(levelName);
> -        if (levelInt == null) {
> -            return Debug.INFO;
> -        } else {
> -            return levelInt;
> -        }
> -    }
> -
>       public static void log(int level, Throwable t, String msg, String module) {
>           log(level, t, msg, module, "org.ofbiz.base.util.Debug", emptyParams);
>       }
> @@ -161,86 +120,19 @@ public final class Debug {
>       }
>   
>       public static void log(int level, Throwable t, String msg, String module, String callingClass, Object... params) {
> -        Logger logger = null;
> -        boolean offSetInLogConfig = false;
> -        boolean fatalSetInLogConfig = false;
> -        boolean errorSetInLogConfig = false;
> -        boolean warnSetInLogConfig = false;
> -        boolean infoSetInLogConfig = false;
> -        boolean traceSetInLogConfig = false;
> -        boolean debugSetInLogConfig = false;
> -        boolean allSetInLogConfig = false;
> -        boolean setInLogConfig = false;
> -
> -        if (useLog4J) {
> -            logger = getLogger(module);
> -
> -            // Class
> -            if (logger != null) {
> -                Level loggerLevel = logger.getLevel();
> -                offSetInLogConfig = Level.OFF.equals(loggerLevel);
> -                fatalSetInLogConfig = Level.FATAL.equals(loggerLevel);
> -                errorSetInLogConfig = Level.ERROR.equals(loggerLevel);
> -                warnSetInLogConfig = Level.WARN.equals(loggerLevel);
> -                infoSetInLogConfig = Level.INFO.equals(loggerLevel);
> -                traceSetInLogConfig = Level.TRACE.equals(loggerLevel);
> -                debugSetInLogConfig = Level.DEBUG.equals(loggerLevel);
> -                allSetInLogConfig = Level.ALL.equals(loggerLevel);
> -            }
> -            setInLogConfig = offSetInLogConfig || fatalSetInLogConfig || errorSetInLogConfig || warnSetInLogConfig || infoSetInLogConfig
> -                            ||  traceSetInLogConfig || debugSetInLogConfig || allSetInLogConfig;
> -            // Package
> -            // !setInLogConfig : for a Class logger, Class setting takes precedence on Package if both are used
> -            if (!noModuleModule.equals(module) && module != null && !module.isEmpty() && !setInLogConfig) {
> -                Logger packageLogger = getLogger(module.substring(0, module.lastIndexOf(".")));
> -                if (packageLogger != null) {
> -                    Level packageLoggerLevel = packageLogger.getLevel();
> -                    offSetInLogConfig |= Level.OFF.equals(packageLoggerLevel);
> -                    fatalSetInLogConfig |= Level.FATAL.equals(packageLoggerLevel);
> -                    errorSetInLogConfig |= Level.ERROR.equals(packageLoggerLevel);
> -                    warnSetInLogConfig |= Level.WARN.equals(packageLoggerLevel);
> -                    infoSetInLogConfig |= Level.INFO.equals(packageLoggerLevel);
> -                    traceSetInLogConfig |= Level.TRACE.equals(packageLoggerLevel);
> -                    debugSetInLogConfig |= Level.DEBUG.equals(packageLoggerLevel);
> -                    allSetInLogConfig |= Level.ALL.equals(packageLoggerLevel);
> -                }
> -            }
> -            setInLogConfig = offSetInLogConfig || fatalSetInLogConfig || errorSetInLogConfig || warnSetInLogConfig || infoSetInLogConfig
> -                            ||  traceSetInLogConfig || debugSetInLogConfig || allSetInLogConfig;
> -        }
> -
> -        if (isOn(level) || setInLogConfig) {
> +        if (isOn(level)) {
>               if (msg != null && params.length > 0) {
>                   StringBuilder sb = new StringBuilder();
>                   Formatter formatter = new Formatter(sb);
>                   formatter.format(msg, params);
>                   msg = sb.toString();
>               }
> -            // pack the exception
> -            if (packException && t != null) {
> -                msg = System.getProperty("line.separator") + ExceptionHelper.packException(msg, t, true);
> -                t = null;
> -            }
>   
>               // log
>               if (useLog4J) {
> -                if (SYS_DEBUG != null) {
> -                    logger.setLevel(Level.DEBUG);
> -                }
> -                if (offSetInLogConfig) {
> -                    // Not printing anything
> -                } else if (fatalSetInLogConfig && Level.FATAL.equals(levelObjs[level])
> -                        || errorSetInLogConfig && Level.ERROR.equals(levelObjs[level])
> -                        || warnSetInLogConfig && Level.WARN.equals(levelObjs[level])
> -                        || infoSetInLogConfig && Level.INFO.equals(levelObjs[level])
> -                        || debugSetInLogConfig && Level.DEBUG.equals(levelObjs[level])
> -                        || traceSetInLogConfig && Level.DEBUG.equals(levelObjs[level])) {
> -                    logger.log(callingClass, levelObjs[level], msg, t);
> -                } else if (allSetInLogConfig) {
> -                    logger.log(callingClass, Level.INFO, msg, t);
> -                } else {
> -                    logger.log(callingClass, levelObjs[level], msg, t);
> -                }
> +                Logger logger = getLogger(module);
> +                //callingClass
> +                logger.log(levelObjs[level], msg, t);
>               } else {
>                   StringBuilder prefixBuf = new StringBuilder();
>   
> @@ -276,7 +168,7 @@ public final class Debug {
>           if (useLevelOnCache) {
>               return levelOnCache[level];
>           } else {
> -            return (level == Debug.ALWAYS || UtilProperties.propertyValueEqualsIgnoreCase("debug", levelProps[level], "true"));
> +            return (level == Debug.ALWAYS || UtilProperties.propertyValueEqualsIgnoreCase("debug.properties", levelProps[level], "true"));
>           }
>       }
>   
> @@ -481,26 +373,6 @@ public final class Debug {
>           log(Debug.FATAL, t, msg, module, params);
>       }
>   
> -    public static void logNotify(String msg, String module) {
> -        log(Debug.NOTIFY, null, msg, module, emptyParams);
> -    }
> -
> -    public static void logNotify(String msg, String module, Object... params) {
> -        log(Debug.NOTIFY, null, msg, module, params);
> -    }
> -
> -    public static void logNotify(Throwable t, String module) {
> -        log(Debug.NOTIFY, t, null, module, emptyParams);
> -    }
> -
> -    public static void logNotify(Throwable t, String msg, String module) {
> -        log(Debug.NOTIFY, t, msg, module, emptyParams);
> -    }
> -
> -    public static void logNotify(Throwable t, String msg, String module, Object... params) {
> -        log(Debug.NOTIFY, t, msg, module, params);
> -    }
> -
>       public static void set(int level, boolean on) {
>           if (!useLevelOnCache)
>               return;
> @@ -512,72 +384,4 @@ public final class Debug {
>               return true;
>           return levelOnCache[level];
>       }
> -
> -    public static synchronized Appender getNewFileAppender(String name, String logFile, long maxSize, int backupIdx, String pattern) {
> -        if (pattern == null) {
> -            pattern = "%-5r[%24F:%-3L:%-5p]%x %m%n";
> -        }
> -
> -        PatternLayout layout = new PatternLayout(pattern);
> -        layout.activateOptions();
> -
> -        RollingFileAppender newAppender = null;
> -        try {
> -            newAppender = new RollingFileAppender(layout, logFile, true);
> -        } catch (IOException e) {
> -            logFatal(e, Debug.class.getName());
> -        }
> -
> -        if (newAppender != null) {
> -            if (backupIdx > 0) {
> -                newAppender.setMaxBackupIndex(backupIdx);
> -            }
> -            if (maxSize > 0) {
> -                newAppender.setMaximumFileSize(maxSize);
> -            }
> -            newAppender.setThreshold(Level.DEBUG);
> -            newAppender.activateOptions();
> -            newAppender.setName(name);
> -        }
> -
> -        return newAppender;
> -    }
> -
> -    public static boolean registerFileAppender(String module, String name, String logFile, long maxSize, int backupIdx, String pattern) {
> -        Logger logger = Logger.getLogger(module);
> -        boolean found = false;
> -
> -        Appender foundAppender = logger.getAppender(name);
> -        if (foundAppender == null) {
> -            Enumeration<Logger> currentLoggerEnum = UtilGenerics.cast(Logger.getRootLogger().getLoggerRepository().getCurrentLoggers());
> -            while (currentLoggerEnum.hasMoreElements() && foundAppender == null) {
> -                Logger log = currentLoggerEnum.nextElement();
> -                foundAppender = log.getAppender(name);
> -            }
> -        } else {
> -            return true;
> -        }
> -
> -        if (foundAppender == null) {
> -            if (logFile != null) {
> -                foundAppender = getNewFileAppender(name, logFile, maxSize, backupIdx, pattern);
> -                if (foundAppender != null) {
> -                    found = true;
> -                }
> -            }
> -        } else {
> -            found = true;
> -        }
> -
> -        logger.addAppender(foundAppender);
> -        return found;
> -    }
> -
> -    public static boolean registerFileAppender(String module, String name, String logFile) {
> -        return registerFileAppender(module, name, logFile, 0, 10, null);
> -    }
> -
> -    public static boolean registerFileAppender(String module, String name) {
> -        return registerFileAppender(module, name, null, -1, -1, null);
> -    }
>   }
>
> Modified: ofbiz/trunk/framework/common/servicedef/services.xml
> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/common/servicedef/services.xml?rev=1618831&r1=1618830&r2=1618831&view=diff
> ==============================================================================
> --- ofbiz/trunk/framework/common/servicedef/services.xml (original)
> +++ ofbiz/trunk/framework/common/servicedef/services.xml Tue Aug 19 10:36:01 2014
> @@ -86,13 +86,6 @@ under the License.
>           <attribute name="timing" type="String" mode="IN" optional="true"/>
>           <attribute name="verbose" type="String" mode="IN" optional="true"/>
>       </service>
> -    <service name="addOrUpdateLogger" engine="java"
> -             location="org.ofbiz.common.CommonServices" invoke="addOrUpdateLogger" auth="true">
> -        <description>Add/Update logger in logging system</description>
> -        <attribute name="name" type="String" mode="IN" optional="false"/>
> -        <attribute name="level" type="String" mode="IN" optional="false"/>
> -        <attribute name="additivity" type="String" mode="IN" optional="true"/>
> -    </service>
>   
>       <service name="displayXaDebugInfo" engine="java"
>               location="org.ofbiz.common.CommonServices" invoke="displayXaDebugInfo" auth="true">
>
> Modified: ofbiz/trunk/framework/common/src/org/ofbiz/common/CommonServices.java
> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/common/src/org/ofbiz/common/CommonServices.java?rev=1618831&r1=1618830&r2=1618831&view=diff
> ==============================================================================
> --- ofbiz/trunk/framework/common/src/org/ofbiz/common/CommonServices.java (original)
> +++ ofbiz/trunk/framework/common/src/org/ofbiz/common/CommonServices.java Tue Aug 19 10:36:01 2014
> @@ -44,8 +44,6 @@ import javax.mail.internet.MimeMessage;
>   import javolution.util.FastList;
>   import javolution.util.FastMap;
>   
> -import org.apache.log4j.Level;
> -import org.apache.log4j.Logger;
>   import org.ofbiz.base.metrics.Metrics;
>   import org.ofbiz.base.metrics.MetricsFactory;
>   import org.ofbiz.base.util.Debug;
> @@ -220,23 +218,6 @@ public class CommonServices {
>           return ServiceUtil.returnSuccess();
>       }
>   
> -    public static Map<String, Object> addOrUpdateLogger(DispatchContext dctc, Map<String, ?> context) {
> -        String name = (String) context.get("name");
> -        String level = (String) context.get("level");
> -        boolean additivity = "Y".equalsIgnoreCase((String) context.get("additivity"));
> -
> -        Logger logger = null;
> -        if ("root".equals(name)) {
> -            logger = Logger.getRootLogger();
> -        } else {
> -            logger = Logger.getLogger(name);
> -        }
> -        logger.setLevel(Level.toLevel(level));
> -        logger.setAdditivity(additivity);
> -
> -        return ServiceUtil.returnSuccess();
> -    }
> -
>       public static Map<String, Object> forceGc(DispatchContext dctx, Map<String, ?> context) {
>           System.gc();
>           return ServiceUtil.returnSuccess();
>
> Modified: ofbiz/trunk/framework/webtools/webapp/webtools/WEB-INF/actions/log/LogConfiguration.groovy
> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/webtools/webapp/webtools/WEB-INF/actions/log/LogConfiguration.groovy?rev=1618831&r1=1618830&r2=1618831&view=diff
> ==============================================================================
> --- ofbiz/trunk/framework/webtools/webapp/webtools/WEB-INF/actions/log/LogConfiguration.groovy (original)
> +++ ofbiz/trunk/framework/webtools/webapp/webtools/WEB-INF/actions/log/LogConfiguration.groovy Tue Aug 19 10:36:01 2014
> @@ -16,39 +16,9 @@
>    * specific language governing permissions and limitations
>    * under the License.
>    */
> -import java.util.Collections;
> -import java.util.Comparator;
> -import java.util.Enumeration;
> -import java.util.List;
> -import java.util.Map;
> -
> -import org.apache.log4j.Logger;
> -import org.apache.log4j.spi.LoggerRepository;
>   
>   import org.ofbiz.base.util.Debug;
> -import org.ofbiz.base.util.UtilMisc;
> -import org.ofbiz.entity.util.EntityUtil;
> -
> -
> -rootLogger = Logger.getRootLogger();
> -loggerRepository = rootLogger.getLoggerRepository();
> -
> -loggerList = [];
> -for (Enumeration enumeration = loggerRepository.getCurrentLoggers(); enumeration.hasMoreElements();) {
> -    logger = enumeration.nextElement();
> -
> -    if (logger.getLevel() != null) {
> -        loggerMap = [name : logger.getName(), level : logger.getLevel(), additivity : logger.getAdditivity() ? "Y" : "N", logger : logger];
> -        loggerList.add(loggerMap);
> -    }
> -}
> -
> -Collections.sort(loggerList, [compare: {l1, l2 -> l1.name.compareTo(l2.name)}] as Comparator);
> -
> -loggerList.add(0, [name : rootLogger.getName(), level : rootLogger.getLevel(), additivity : rootLogger.getAdditivity() ? "Y" : "N", logger : rootLogger]);
> -context.loggerList = loggerList;
>   
> -context.defaultLogger = [name : "org.ofbiz.", level : "INFO", additivity : "Y"];
>   context.activeDebugLevel = [fatal : Debug.fatalOn() ? "Y" : "N",
>                               error : Debug.errorOn() ? "Y" : "N",
>                               warning : Debug.warningOn() ? "Y" : "N",
>
> Modified: ofbiz/trunk/framework/webtools/webapp/webtools/WEB-INF/controller.xml
> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/webtools/webapp/webtools/WEB-INF/controller.xml?rev=1618831&r1=1618830&r2=1618831&view=diff
> ==============================================================================
> --- ofbiz/trunk/framework/webtools/webapp/webtools/WEB-INF/controller.xml (original)
> +++ ofbiz/trunk/framework/webtools/webapp/webtools/WEB-INF/controller.xml Tue Aug 19 10:36:01 2014
> @@ -244,16 +244,6 @@ under the License.
>           <security https="true" auth="true"/>
>           <response name="success" type="view" value="LogConfiguration"/>
>       </request-map>
> -    <request-map uri="AddLogger">
> -        <security https="true" auth="true"/>
> -        <event type="service" invoke="addOrUpdateLogger"/>
> -        <response name="success" type="view" value="LogConfiguration"/>
> -    </request-map>
> -    <request-map uri="UpdateLogger">
> -        <security https="true" auth="true"/>
> -        <event type="service-multi" invoke="addOrUpdateLogger"/>
> -        <response name="success" type="view" value="LogConfiguration"/>
> -    </request-map>
>       <request-map uri="AdjustDebugLevels">
>           <security https="true" auth="true"/>
>           <event type="service" invoke="adjustDebugLevels"/>
>
> Modified: ofbiz/trunk/framework/webtools/widget/LogForms.xml
> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/webtools/widget/LogForms.xml?rev=1618831&r1=1618830&r2=1618831&view=diff
> ==============================================================================
> --- ofbiz/trunk/framework/webtools/widget/LogForms.xml (original)
> +++ ofbiz/trunk/framework/webtools/widget/LogForms.xml Tue Aug 19 10:36:01 2014
> @@ -32,43 +32,4 @@ under the License.
>       <field name="submit" title="${uiLabelMap.CommonUpdate}"><submit/></field>
>     </form>
>   
> -  <form name="AddLogger" type="single" default-map-name="defaultLogger" target="AddLogger"
> -    header-row-style="header-row" default-table-style="basic-table">
> -    <field name="name" title="${uiLabelMap.WebtoolsLoggerName}"><text size="50"/></field>
> -    <field name="level" title="${uiLabelMap.WebtoolsLoggerLevel}">
> -        <drop-down>
> -          <option key="OFF"/>
> -          <option key="FATAL"/>
> -          <option key="ERROR"/>
> -          <option key="WARN"/>
> -          <option key="INFO"/>
> -          <option key="TRACE"/>
> -          <option key="DEBUG"/>
> -          <option key="ALL"/>
> -        </drop-down>
> -    </field>
> -    <field name="additivity" title="${uiLabelMap.WebtoolsLoggerAdditivity}"><check/></field>
> -    <field name="submit" title="${uiLabelMap.CommonAdd}"><submit/></field>
> -  </form>
> -
> -  <form name="LoggerList" type="multi" target="UpdateLogger" list-name="loggerList" separate-columns="true"
> -    paginate="false" odd-row-style="alternate-row" default-table-style="basic-table hover-bar">
> -    <field name="name" title="${uiLabelMap.WebtoolsLoggerName}"><display/></field>
> -    <field name="level" title="${uiLabelMap.WebtoolsLoggerLevel}">
> -        <drop-down>
> -          <option key="OFF"/>
> -          <option key="FATAL"/>
> -          <option key="ERROR"/>
> -          <option key="WARN"/>
> -          <option key="INFO"/>
> -          <option key="TRACE"/>
> -          <option key="DEBUG"/>
> -          <option key="ALL"/>
> -        </drop-down>
> -    </field>
> -    <field name="additivity" title="${uiLabelMap.WebtoolsLoggerAdditivity}">
> -      <check/>
> -    </field>
> -    <field name="submit" title="${uiLabelMap.CommonUpdate}"><submit/></field>
> -  </form>
>   </forms>
>
> Modified: ofbiz/trunk/framework/webtools/widget/LogScreens.xml
> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/webtools/widget/LogScreens.xml?rev=1618831&r1=1618830&r2=1618831&view=diff
> ==============================================================================
> --- ofbiz/trunk/framework/webtools/widget/LogScreens.xml (original)
> +++ ofbiz/trunk/framework/webtools/widget/LogScreens.xml Tue Aug 19 10:36:01 2014
> @@ -87,12 +87,6 @@ under the License.
>                            <screenlet title="${uiLabelMap.WebtoolsDebuggingLevelFormDescription}">
>                                <include-form name="LevelSwitch" location="component://webtools/widget/LogForms.xml"/>
>                            </screenlet>
> -                         <screenlet title="${uiLabelMap.WebtoolsAddLoggerFormDescription}">
> -                             <include-form name="AddLogger" location="component://webtools/widget/LogForms.xml"/>
> -                         </screenlet>
> -                         <screenlet title="${uiLabelMap.WebtoolsLoggerListFormDescription}">
> -                             <include-form name="LoggerList" location="component://webtools/widget/LogForms.xml"/>
> -                         </screenlet>
>                        </decorator-section>
>                    </decorator-screen>
>                  </widgets>
>
> Modified: ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/PosTransaction.java
> URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/PosTransaction.java?rev=1618831&r1=1618830&r2=1618831&view=diff
> ==============================================================================
> --- ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/PosTransaction.java (original)
> +++ ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/PosTransaction.java Tue Aug 19 10:36:01 2014
> @@ -36,7 +36,6 @@ import net.xoetrope.xui.helper.SwingWork
>   import org.ofbiz.accounting.payment.PaymentGatewayServices;
>   import org.ofbiz.base.util.Debug;
>   import org.ofbiz.base.util.GeneralException;
> -import org.ofbiz.base.util.Log4jLoggerWriter;
>   import org.ofbiz.base.util.UtilDateTime;
>   import org.ofbiz.base.util.UtilFormatOut;
>   import org.ofbiz.base.util.UtilGenerics;
> @@ -96,7 +95,6 @@ public class PosTransaction implements S
>       public static final int INTERNAL_PAYMENT = 1;
>       public static final int EXTERNAL_PAYMENT = 2;
>   
> -    private static PrintWriter defaultPrintWriter = new Log4jLoggerWriter(Debug.getLogger(module));
>       private static PosTransaction currentTx = null;
>       private static LifoSet<PosTransaction> savedTx = new LifoSet<PosTransaction>();
>   
> @@ -125,7 +123,7 @@ public class PosTransaction implements S
>           this.session = session;
>           this.terminalId = session.getId();
>           this.partyId = "_NA_";
> -        this.trace = defaultPrintWriter;
> +        //this.trace = defaultPrintWriter;
>   
>           this.productStoreId = (String) session.getAttribute("productStoreId");
>           this.facilityId = (String) session.getAttribute("facilityId");
> @@ -1195,6 +1193,7 @@ public class PosTransaction implements S
>       }
>   
>       private void trace(String s1, String s2, Throwable t) {
> +        /*
>           if (trace != null) {
>               String msg = s1;
>               if (UtilValidate.isNotEmpty(s2)) {
> @@ -1208,6 +1207,7 @@ public class PosTransaction implements S
>               trace.println("[POS @ " + terminalId + " TX:" + transactionId + "] - " + msg);
>               trace.flush();
>           }
> +        */
>       }
>   
>       public static synchronized PosTransaction getCurrentTx(XuiSession session) {
>
>
>

Re: svn commit: r1618831 - in /ofbiz/trunk: ./ framework/base/config/ framework/base/lib/ framework/base/src/org/ofbiz/base/container/ framework/base/src/org/ofbiz/base/util/ framework/common/servicedef/ framework/common/src/org/ofbiz/common/ framework/web...

Posted by Jacopo Cappellato <ja...@hotwaxmedia.com>.
This is great news! Thank you Adrian

Jacopo

On Aug 19, 2014, at 1:35 PM, Adrian Crum <ad...@sandglass-software.com> wrote:

> Thanks Jacopo!
> 
> No more missing log entries due to logger overflows!
> 
> Adrian Crum
> Sandglass Software
> www.sandglass-software.com
> 
> On 8/19/2014 11:36 AM, jacopoc@apache.org wrote:
>> Author: jacopoc
>> Date: Tue Aug 19 10:36:01 2014
>> New Revision: 1618831
>> 
>> URL: http://svn.apache.org/r1618831
>> Log:
>> OFBIZ-5287: Upgrade to Log4j2
>> 
>> Added:
>>     ofbiz/trunk/framework/base/config/log4j2.xml   (with props)
>>     ofbiz/trunk/framework/base/lib/log4j-1.2-api-2.0.1.jar   (with props)
>>     ofbiz/trunk/framework/base/lib/log4j-api-2.0.1.jar   (with props)
>>     ofbiz/trunk/framework/base/lib/log4j-core-2.0.1.jar   (with props)
>>     ofbiz/trunk/framework/base/lib/log4j-jcl-2.0.1.jar   (with props)
>>     ofbiz/trunk/framework/base/lib/log4j-slf4j-impl-2.0.1.jar   (with props)
>> Removed:
>>     ofbiz/trunk/framework/base/config/log4j.xml
>>     ofbiz/trunk/framework/base/lib/avalon-util-exception-1.0.0.jar
>>     ofbiz/trunk/framework/base/lib/log4j-1.2.17.jar
>>     ofbiz/trunk/framework/base/lib/slf4j-log4j12-1.6.4.jar
>>     ofbiz/trunk/framework/base/src/org/ofbiz/base/util/Log4jLoggerWriter.java
>>     ofbiz/trunk/framework/base/src/org/ofbiz/base/util/NotifyLevel.java
>> Modified:
>>     ofbiz/trunk/LICENSE
>>     ofbiz/trunk/framework/base/config/debug.properties
>>     ofbiz/trunk/framework/base/src/org/ofbiz/base/container/ContainerLoader.java
>>     ofbiz/trunk/framework/base/src/org/ofbiz/base/util/Debug.java
>>     ofbiz/trunk/framework/common/servicedef/services.xml
>>     ofbiz/trunk/framework/common/src/org/ofbiz/common/CommonServices.java
>>     ofbiz/trunk/framework/webtools/webapp/webtools/WEB-INF/actions/log/LogConfiguration.groovy
>>     ofbiz/trunk/framework/webtools/webapp/webtools/WEB-INF/controller.xml
>>     ofbiz/trunk/framework/webtools/widget/LogForms.xml
>>     ofbiz/trunk/framework/webtools/widget/LogScreens.xml
>>     ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/PosTransaction.java
>> 
>> Modified: ofbiz/trunk/LICENSE
>> URL: http://svn.apache.org/viewvc/ofbiz/trunk/LICENSE?rev=1618831&r1=1618830&r2=1618831&view=diff
>> ==============================================================================
>> --- ofbiz/trunk/LICENSE (original)
>> +++ ofbiz/trunk/LICENSE Tue Aug 19 10:36:01 2014
>> @@ -28,7 +28,11 @@ framework/base/lib/jakarta-regexp-1.5.ja
>>  framework/base/lib/jpim-0.1.jar
>>  framework/base/lib/juel-impl-2.2.7.jar
>>  framework/base/lib/juel-spi-2.2.7.jar
>> -framework/base/lib/log4j-1.2.17.jar
>> +framework/base/lib/log4j-1.2-api-2.0.1.jar
>> +framework/base/lib/log4j-api-2.0.1.jar
>> +framework/base/lib/log4j-core-2.0.1.jar
>> +framework/base/lib/log4j-jcl-2.0.1.jar
>> +framework/base/lib/log4j-slf4j-impl-2.0.1.jar
>>  framework/base/lib/mx4j-3.0.1.jar
>>  framework/base/lib/mx4j-remote-3.0.1.jar
>>  framework/base/lib/nekohtml-1.9.16.jar
>> @@ -1214,7 +1218,6 @@ MIT/X License:
>>  framework/base/lib/icu4j-52_1.jar
>>  framework/base/lib/jcl-over-slf4j-1.6.4.jar
>>  framework/base/lib/slf4j-api-1.6.4.jar
>> -framework/base/lib/slf4j-log4j12-1.6.4.jar
>>  framework/images/webapp/images/jquery/*
>>  framework/images/webapp/images/date/date.format-1.2.3*.js
>>  =========================================================================
>> 
>> Modified: ofbiz/trunk/framework/base/config/debug.properties
>> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/config/debug.properties?rev=1618831&r1=1618830&r2=1618831&view=diff
>> ==============================================================================
>> --- ofbiz/trunk/framework/base/config/debug.properties (original)
>> +++ ofbiz/trunk/framework/base/config/debug.properties Tue Aug 19 10:36:01 2014
>> @@ -21,12 +21,6 @@
>>  # OFBiz Debug Settings
>>  ####
>> 
>> -# Pack Exception Report Using Avalon Exception Util
>> -pack.exception=true
>> -
>> -# Disable log4j config (used when other app servers handle the config)
>> -disable.log4j.config=false
>> -
>>  # These top level switches are used before calling Log4J, or if Log4J is not used
>>  print.verbose=false
>>  print.timing=true
>> 
>> Added: ofbiz/trunk/framework/base/config/log4j2.xml
>> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/config/log4j2.xml?rev=1618831&view=auto
>> ==============================================================================
>> --- ofbiz/trunk/framework/base/config/log4j2.xml (added)
>> +++ ofbiz/trunk/framework/base/config/log4j2.xml Tue Aug 19 10:36:01 2014
>> @@ -0,0 +1,49 @@
>> +<?xml version="1.0" encoding="UTF-8"?>
>> +<Configuration monitorInterval="60">
>> +    <Appenders>
>> +        <Console name="stdout" target="SYSTEM_OUT">
>> +            <PatternLayout pattern="%date{COMPACT} |%-20.20thread |%-20.20logger{1}|%level{length=1}| %message%n"/>
>> +        </Console>
>> +        <RollingFile name="ofbiz" fileName="runtime/logs/ofbiz.log"
>> +                     filePattern="runtime/logs/ofbiz-%d{yyyy-MM-dd}-%i.log.zip">
>> +            <PatternLayout pattern="%date{COMPACT} |%-20.20thread |%-20.20logger{1}|%level{length=1}| %message%n"/>
>> +            <Policies>
>> +                <TimeBasedTriggeringPolicy/>
>> +                <SizeBasedTriggeringPolicy size="1 MB"/>
>> +            </Policies>
>> +            <DefaultRolloverStrategy max="4"/>
>> +        </RollingFile>
>> +        <RollingFile name="external" fileName="runtime/logs/external.log"
>> +                     filePattern="runtime/logs/external-%d{yyyy-MM-dd}-%i.log.zip">
>> +            <PatternLayout pattern="%date{COMPACT} |%-20.20thread |%-20.20logger{1}|%level{length=1}| %message%n"/>
>> +            <Policies>
>> +                <TimeBasedTriggeringPolicy/>
>> +                <SizeBasedTriggeringPolicy size="1 MB"/>
>> +            </Policies>
>> +            <DefaultRolloverStrategy max="4"/>
>> +        </RollingFile>
>> +        <Async name="async">
>> +            <AppenderRef ref="ofbiz"/>
>> +            <AppenderRef ref="stdout"/>
>> +        </Async>
>> +    </Appenders>
>> +    <Loggers>
>> +        <logger name="org.ofbiz.base.converter.Converters" level="warn"/>
>> +        <logger name="org.apache" level="warn" additivity="false">
>> +            <appender-ref ref="external"/>
>> +        </logger>
>> +        <logger name="org.apache.tomcat" level="info" additivity="true">
>> +            <appender-ref ref="external"/>
>> +        </logger>
>> +        <logger name="org.apache.catalina" level="info" additivity="true">
>> +            <appender-ref ref="external"/>
>> +        </logger>
>> +        <logger name="freemarker" level="warn" additivity="false">
>> +            <appender-ref ref="external"/>
>> +        </logger>
>> +
>> +        <Root level="all">
>> +            <AppenderRef ref="async"/>
>> +        </Root>
>> +    </Loggers>
>> +</Configuration>
>> 
>> Propchange: ofbiz/trunk/framework/base/config/log4j2.xml
>> ------------------------------------------------------------------------------
>>     svn:eol-style = native
>> 
>> Propchange: ofbiz/trunk/framework/base/config/log4j2.xml
>> ------------------------------------------------------------------------------
>>     svn:keywords = Date Rev Author URL Id
>> 
>> Propchange: ofbiz/trunk/framework/base/config/log4j2.xml
>> ------------------------------------------------------------------------------
>>     svn:mime-type = text/xml
>> 
>> Added: ofbiz/trunk/framework/base/lib/log4j-1.2-api-2.0.1.jar
>> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/lib/log4j-1.2-api-2.0.1.jar?rev=1618831&view=auto
>> ==============================================================================
>> Binary file - no diff available.
>> 
>> Propchange: ofbiz/trunk/framework/base/lib/log4j-1.2-api-2.0.1.jar
>> ------------------------------------------------------------------------------
>>     svn:mime-type = application/octet-stream
>> 
>> Added: ofbiz/trunk/framework/base/lib/log4j-api-2.0.1.jar
>> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/lib/log4j-api-2.0.1.jar?rev=1618831&view=auto
>> ==============================================================================
>> Binary file - no diff available.
>> 
>> Propchange: ofbiz/trunk/framework/base/lib/log4j-api-2.0.1.jar
>> ------------------------------------------------------------------------------
>>     svn:mime-type = application/octet-stream
>> 
>> Added: ofbiz/trunk/framework/base/lib/log4j-core-2.0.1.jar
>> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/lib/log4j-core-2.0.1.jar?rev=1618831&view=auto
>> ==============================================================================
>> Binary file - no diff available.
>> 
>> Propchange: ofbiz/trunk/framework/base/lib/log4j-core-2.0.1.jar
>> ------------------------------------------------------------------------------
>>     svn:mime-type = application/octet-stream
>> 
>> Added: ofbiz/trunk/framework/base/lib/log4j-jcl-2.0.1.jar
>> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/lib/log4j-jcl-2.0.1.jar?rev=1618831&view=auto
>> ==============================================================================
>> Binary file - no diff available.
>> 
>> Propchange: ofbiz/trunk/framework/base/lib/log4j-jcl-2.0.1.jar
>> ------------------------------------------------------------------------------
>>     svn:mime-type = application/octet-stream
>> 
>> Added: ofbiz/trunk/framework/base/lib/log4j-slf4j-impl-2.0.1.jar
>> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/lib/log4j-slf4j-impl-2.0.1.jar?rev=1618831&view=auto
>> ==============================================================================
>> Binary file - no diff available.
>> 
>> Propchange: ofbiz/trunk/framework/base/lib/log4j-slf4j-impl-2.0.1.jar
>> ------------------------------------------------------------------------------
>>     svn:mime-type = application/octet-stream
>> 
>> Modified: ofbiz/trunk/framework/base/src/org/ofbiz/base/container/ContainerLoader.java
>> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/src/org/ofbiz/base/container/ContainerLoader.java?rev=1618831&r1=1618830&r2=1618831&view=diff
>> ==============================================================================
>> --- ofbiz/trunk/framework/base/src/org/ofbiz/base/container/ContainerLoader.java (original)
>> +++ ofbiz/trunk/framework/base/src/org/ofbiz/base/container/ContainerLoader.java Tue Aug 19 10:36:01 2014
>> @@ -27,8 +27,6 @@ import java.util.LinkedList;
>>  import java.util.List;
>>  import java.util.Map;
>> 
>> -import org.apache.log4j.Appender;
>> -import org.apache.log4j.Logger;
>>  import org.ofbiz.base.component.ComponentConfig;
>>  import org.ofbiz.base.start.Config;
>>  import org.ofbiz.base.start.StartupException;
>> @@ -270,12 +268,6 @@ public class ContainerLoader implements
>>                      Debug.logInfo("Stopped container " + container.getName(), module);
>>                  }
>>              }
>> -            @SuppressWarnings("unchecked")
>> -            Enumeration<Appender> en = Logger.getRootLogger().getAllAppenders();
>> -            while (en.hasMoreElements()) {
>> -                Appender appender = en.nextElement();
>> -                appender.close();
>> -            }
>>          }
>>      }
>>  }
>> 
>> Modified: ofbiz/trunk/framework/base/src/org/ofbiz/base/util/Debug.java
>> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/src/org/ofbiz/base/util/Debug.java?rev=1618831&r1=1618830&r2=1618831&view=diff
>> ==============================================================================
>> --- ofbiz/trunk/framework/base/src/org/ofbiz/base/util/Debug.java (original)
>> +++ ofbiz/trunk/framework/base/src/org/ofbiz/base/util/Debug.java Tue Aug 19 10:36:01 2014
>> @@ -18,23 +18,15 @@
>>   *******************************************************************************/
>>  package org.ofbiz.base.util;
>> 
>> -import java.io.IOException;
>>  import java.io.PrintStream;
>>  import java.io.PrintWriter;
>> -import java.util.Enumeration;
>>  import java.util.Formatter;
>>  import java.util.HashMap;
>>  import java.util.Locale;
>>  import java.util.Map;
>>  import java.util.TimeZone;
>> 
>> -import org.apache.avalon.util.exception.ExceptionHelper;
>> -import org.apache.log4j.Appender;
>> -import org.apache.log4j.Level;
>> -import org.apache.log4j.Logger;
>> -import org.apache.log4j.PatternLayout;
>> -import org.apache.log4j.RollingFileAppender;
>> -import org.apache.log4j.spi.LoggerRepository;
>> +import org.apache.logging.log4j.*;
>>  import org.ofbiz.base.conversion.ConversionException;
>>  import org.ofbiz.base.conversion.DateTimeConverters.DateToString;
>> 
>> @@ -57,22 +49,20 @@ public final class Debug {
>>      public static final int WARNING = 5;
>>      public static final int ERROR = 6;
>>      public static final int FATAL = 7;
>> -    public static final int NOTIFY = 8;
>> 
>> -    public static final String[] levels = {"Always", "Verbose", "Timing", "Info", "Important", "Warning", "Error", "Fatal", "Notify"};
>> -    public static final String[] levelProps = {"", "print.verbose", "print.timing", "print.info", "print.important", "print.warning", "print.error", "print.fatal", "print.notify"};
>> -    public static final Level[] levelObjs = {Level.INFO, Level.DEBUG, Level.INFO, Level.INFO, Level.INFO, Level.WARN, Level.ERROR, Level.FATAL, NotifyLevel.NOTIFY};
>> +    public static final String[] levels = {"Always", "Verbose", "Timing", "Info", "Important", "Warning", "Error", "Fatal"};
>> +    public static final String[] levelProps = {"", "print.verbose", "print.timing", "print.info", "print.important", "print.warning", "print.error", "print.fatal"};
>> +    public static final Level[] levelObjs = {Level.FATAL, Level.DEBUG, Level.TRACE, Level.INFO, Level.INFO, Level.WARN, Level.ERROR, Level.FATAL};
>> 
>>      protected static Map<String, Integer> levelStringMap = new HashMap<String, Integer>();
>> 
>>      protected static PrintStream printStream = System.out;
>>      protected static PrintWriter printWriter = new PrintWriter(printStream);
>> 
>> -    protected static boolean levelOnCache[] = new boolean[9];
>> -    protected static boolean packException = true;
>> +    protected static boolean levelOnCache[] = new boolean[8];
>>      protected static final boolean useLevelOnCache = true;
>> 
>> -    protected static Logger root = Logger.getRootLogger();
>> +    protected static Logger root = LogManager.getRootLogger();
>> 
>>      static {
>>          levelStringMap.put("verbose", Debug.VERBOSE);
>> @@ -83,32 +73,11 @@ public final class Debug {
>>          levelStringMap.put("error", Debug.ERROR);
>>          levelStringMap.put("fatal", Debug.FATAL);
>>          levelStringMap.put("always", Debug.ALWAYS);
>> -        levelStringMap.put("notify", Debug.NOTIFY);
>> -
>> -        // initialize Log4J
>> -        if (!UtilProperties.propertyValueEqualsIgnoreCase("debug.properties", "disable.log4j.config", "true")) {
>> -            org.apache.log4j.xml.DOMConfigurator.configure(UtilURL.fromResource("log4j.xml"));
>> -        }
>> 
>>          // initialize levelOnCache
>> -        for (int i = 0; i < 9; i++) {
>> +        for (int i = 0; i < levelOnCache.length; i++) {
>>              levelOnCache[i] = (i == Debug.ALWAYS || UtilProperties.propertyValueEqualsIgnoreCase("debug.properties", levelProps[i], "true"));
>>          }
>> -
>> -        if (SYS_DEBUG != null) {
>> -            for (int x = 0; x < 8; x++) {
>> -                levelOnCache[x] = true;
>> -            }
>> -            LoggerRepository repo = root.getLoggerRepository();
>> -            Enumeration<Logger> en = UtilGenerics.cast(repo.getCurrentLoggers());
>> -            while (en.hasMoreElements()) {
>> -                Logger thisLogger = en.nextElement();
>> -                thisLogger.setLevel(Level.DEBUG);
>> -            }
>> -        }
>> -
>> -        // configure exception packing
>> -        packException = UtilProperties.propertyValueEqualsIgnoreCase("debug.properties", "pack.exception", "true");
>>      }
>> 
>>      public static PrintStream getPrintStream() {
>> @@ -126,7 +95,7 @@ public final class Debug {
>> 
>>      public static Logger getLogger(String module) {
>>          if (UtilValidate.isNotEmpty(module)) {
>> -            return Logger.getLogger(module);
>> +            return LogManager.getLogger(module);
>>          } else {
>>              return root;
>>          }
>> @@ -138,16 +107,6 @@ public final class Debug {
>>          return levelStringMap.get(levelName.toLowerCase());
>>      }
>> 
>> -    /** Gets an int representing the level number from a String representing the level name; if level not found defaults to Debug.INFO */
>> -    public static int getLevelFromStringWithDefault(String levelName) {
>> -        Integer levelInt = getLevelFromString(levelName);
>> -        if (levelInt == null) {
>> -            return Debug.INFO;
>> -        } else {
>> -            return levelInt;
>> -        }
>> -    }
>> -
>>      public static void log(int level, Throwable t, String msg, String module) {
>>          log(level, t, msg, module, "org.ofbiz.base.util.Debug", emptyParams);
>>      }
>> @@ -161,86 +120,19 @@ public final class Debug {
>>      }
>> 
>>      public static void log(int level, Throwable t, String msg, String module, String callingClass, Object... params) {
>> -        Logger logger = null;
>> -        boolean offSetInLogConfig = false;
>> -        boolean fatalSetInLogConfig = false;
>> -        boolean errorSetInLogConfig = false;
>> -        boolean warnSetInLogConfig = false;
>> -        boolean infoSetInLogConfig = false;
>> -        boolean traceSetInLogConfig = false;
>> -        boolean debugSetInLogConfig = false;
>> -        boolean allSetInLogConfig = false;
>> -        boolean setInLogConfig = false;
>> -
>> -        if (useLog4J) {
>> -            logger = getLogger(module);
>> -
>> -            // Class
>> -            if (logger != null) {
>> -                Level loggerLevel = logger.getLevel();
>> -                offSetInLogConfig = Level.OFF.equals(loggerLevel);
>> -                fatalSetInLogConfig = Level.FATAL.equals(loggerLevel);
>> -                errorSetInLogConfig = Level.ERROR.equals(loggerLevel);
>> -                warnSetInLogConfig = Level.WARN.equals(loggerLevel);
>> -                infoSetInLogConfig = Level.INFO.equals(loggerLevel);
>> -                traceSetInLogConfig = Level.TRACE.equals(loggerLevel);
>> -                debugSetInLogConfig = Level.DEBUG.equals(loggerLevel);
>> -                allSetInLogConfig = Level.ALL.equals(loggerLevel);
>> -            }
>> -            setInLogConfig = offSetInLogConfig || fatalSetInLogConfig || errorSetInLogConfig || warnSetInLogConfig || infoSetInLogConfig
>> -                            ||  traceSetInLogConfig || debugSetInLogConfig || allSetInLogConfig;
>> -            // Package
>> -            // !setInLogConfig : for a Class logger, Class setting takes precedence on Package if both are used
>> -            if (!noModuleModule.equals(module) && module != null && !module.isEmpty() && !setInLogConfig) {
>> -                Logger packageLogger = getLogger(module.substring(0, module.lastIndexOf(".")));
>> -                if (packageLogger != null) {
>> -                    Level packageLoggerLevel = packageLogger.getLevel();
>> -                    offSetInLogConfig |= Level.OFF.equals(packageLoggerLevel);
>> -                    fatalSetInLogConfig |= Level.FATAL.equals(packageLoggerLevel);
>> -                    errorSetInLogConfig |= Level.ERROR.equals(packageLoggerLevel);
>> -                    warnSetInLogConfig |= Level.WARN.equals(packageLoggerLevel);
>> -                    infoSetInLogConfig |= Level.INFO.equals(packageLoggerLevel);
>> -                    traceSetInLogConfig |= Level.TRACE.equals(packageLoggerLevel);
>> -                    debugSetInLogConfig |= Level.DEBUG.equals(packageLoggerLevel);
>> -                    allSetInLogConfig |= Level.ALL.equals(packageLoggerLevel);
>> -                }
>> -            }
>> -            setInLogConfig = offSetInLogConfig || fatalSetInLogConfig || errorSetInLogConfig || warnSetInLogConfig || infoSetInLogConfig
>> -                            ||  traceSetInLogConfig || debugSetInLogConfig || allSetInLogConfig;
>> -        }
>> -
>> -        if (isOn(level) || setInLogConfig) {
>> +        if (isOn(level)) {
>>              if (msg != null && params.length > 0) {
>>                  StringBuilder sb = new StringBuilder();
>>                  Formatter formatter = new Formatter(sb);
>>                  formatter.format(msg, params);
>>                  msg = sb.toString();
>>              }
>> -            // pack the exception
>> -            if (packException && t != null) {
>> -                msg = System.getProperty("line.separator") + ExceptionHelper.packException(msg, t, true);
>> -                t = null;
>> -            }
>> 
>>              // log
>>              if (useLog4J) {
>> -                if (SYS_DEBUG != null) {
>> -                    logger.setLevel(Level.DEBUG);
>> -                }
>> -                if (offSetInLogConfig) {
>> -                    // Not printing anything
>> -                } else if (fatalSetInLogConfig && Level.FATAL.equals(levelObjs[level])
>> -                        || errorSetInLogConfig && Level.ERROR.equals(levelObjs[level])
>> -                        || warnSetInLogConfig && Level.WARN.equals(levelObjs[level])
>> -                        || infoSetInLogConfig && Level.INFO.equals(levelObjs[level])
>> -                        || debugSetInLogConfig && Level.DEBUG.equals(levelObjs[level])
>> -                        || traceSetInLogConfig && Level.DEBUG.equals(levelObjs[level])) {
>> -                    logger.log(callingClass, levelObjs[level], msg, t);
>> -                } else if (allSetInLogConfig) {
>> -                    logger.log(callingClass, Level.INFO, msg, t);
>> -                } else {
>> -                    logger.log(callingClass, levelObjs[level], msg, t);
>> -                }
>> +                Logger logger = getLogger(module);
>> +                //callingClass
>> +                logger.log(levelObjs[level], msg, t);
>>              } else {
>>                  StringBuilder prefixBuf = new StringBuilder();
>> 
>> @@ -276,7 +168,7 @@ public final class Debug {
>>          if (useLevelOnCache) {
>>              return levelOnCache[level];
>>          } else {
>> -            return (level == Debug.ALWAYS || UtilProperties.propertyValueEqualsIgnoreCase("debug", levelProps[level], "true"));
>> +            return (level == Debug.ALWAYS || UtilProperties.propertyValueEqualsIgnoreCase("debug.properties", levelProps[level], "true"));
>>          }
>>      }
>> 
>> @@ -481,26 +373,6 @@ public final class Debug {
>>          log(Debug.FATAL, t, msg, module, params);
>>      }
>> 
>> -    public static void logNotify(String msg, String module) {
>> -        log(Debug.NOTIFY, null, msg, module, emptyParams);
>> -    }
>> -
>> -    public static void logNotify(String msg, String module, Object... params) {
>> -        log(Debug.NOTIFY, null, msg, module, params);
>> -    }
>> -
>> -    public static void logNotify(Throwable t, String module) {
>> -        log(Debug.NOTIFY, t, null, module, emptyParams);
>> -    }
>> -
>> -    public static void logNotify(Throwable t, String msg, String module) {
>> -        log(Debug.NOTIFY, t, msg, module, emptyParams);
>> -    }
>> -
>> -    public static void logNotify(Throwable t, String msg, String module, Object... params) {
>> -        log(Debug.NOTIFY, t, msg, module, params);
>> -    }
>> -
>>      public static void set(int level, boolean on) {
>>          if (!useLevelOnCache)
>>              return;
>> @@ -512,72 +384,4 @@ public final class Debug {
>>              return true;
>>          return levelOnCache[level];
>>      }
>> -
>> -    public static synchronized Appender getNewFileAppender(String name, String logFile, long maxSize, int backupIdx, String pattern) {
>> -        if (pattern == null) {
>> -            pattern = "%-5r[%24F:%-3L:%-5p]%x %m%n";
>> -        }
>> -
>> -        PatternLayout layout = new PatternLayout(pattern);
>> -        layout.activateOptions();
>> -
>> -        RollingFileAppender newAppender = null;
>> -        try {
>> -            newAppender = new RollingFileAppender(layout, logFile, true);
>> -        } catch (IOException e) {
>> -            logFatal(e, Debug.class.getName());
>> -        }
>> -
>> -        if (newAppender != null) {
>> -            if (backupIdx > 0) {
>> -                newAppender.setMaxBackupIndex(backupIdx);
>> -            }
>> -            if (maxSize > 0) {
>> -                newAppender.setMaximumFileSize(maxSize);
>> -            }
>> -            newAppender.setThreshold(Level.DEBUG);
>> -            newAppender.activateOptions();
>> -            newAppender.setName(name);
>> -        }
>> -
>> -        return newAppender;
>> -    }
>> -
>> -    public static boolean registerFileAppender(String module, String name, String logFile, long maxSize, int backupIdx, String pattern) {
>> -        Logger logger = Logger.getLogger(module);
>> -        boolean found = false;
>> -
>> -        Appender foundAppender = logger.getAppender(name);
>> -        if (foundAppender == null) {
>> -            Enumeration<Logger> currentLoggerEnum = UtilGenerics.cast(Logger.getRootLogger().getLoggerRepository().getCurrentLoggers());
>> -            while (currentLoggerEnum.hasMoreElements() && foundAppender == null) {
>> -                Logger log = currentLoggerEnum.nextElement();
>> -                foundAppender = log.getAppender(name);
>> -            }
>> -        } else {
>> -            return true;
>> -        }
>> -
>> -        if (foundAppender == null) {
>> -            if (logFile != null) {
>> -                foundAppender = getNewFileAppender(name, logFile, maxSize, backupIdx, pattern);
>> -                if (foundAppender != null) {
>> -                    found = true;
>> -                }
>> -            }
>> -        } else {
>> -            found = true;
>> -        }
>> -
>> -        logger.addAppender(foundAppender);
>> -        return found;
>> -    }
>> -
>> -    public static boolean registerFileAppender(String module, String name, String logFile) {
>> -        return registerFileAppender(module, name, logFile, 0, 10, null);
>> -    }
>> -
>> -    public static boolean registerFileAppender(String module, String name) {
>> -        return registerFileAppender(module, name, null, -1, -1, null);
>> -    }
>>  }
>> 
>> Modified: ofbiz/trunk/framework/common/servicedef/services.xml
>> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/common/servicedef/services.xml?rev=1618831&r1=1618830&r2=1618831&view=diff
>> ==============================================================================
>> --- ofbiz/trunk/framework/common/servicedef/services.xml (original)
>> +++ ofbiz/trunk/framework/common/servicedef/services.xml Tue Aug 19 10:36:01 2014
>> @@ -86,13 +86,6 @@ under the License.
>>          <attribute name="timing" type="String" mode="IN" optional="true"/>
>>          <attribute name="verbose" type="String" mode="IN" optional="true"/>
>>      </service>
>> -    <service name="addOrUpdateLogger" engine="java"
>> -             location="org.ofbiz.common.CommonServices" invoke="addOrUpdateLogger" auth="true">
>> -        <description>Add/Update logger in logging system</description>
>> -        <attribute name="name" type="String" mode="IN" optional="false"/>
>> -        <attribute name="level" type="String" mode="IN" optional="false"/>
>> -        <attribute name="additivity" type="String" mode="IN" optional="true"/>
>> -    </service>
>> 
>>      <service name="displayXaDebugInfo" engine="java"
>>              location="org.ofbiz.common.CommonServices" invoke="displayXaDebugInfo" auth="true">
>> 
>> Modified: ofbiz/trunk/framework/common/src/org/ofbiz/common/CommonServices.java
>> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/common/src/org/ofbiz/common/CommonServices.java?rev=1618831&r1=1618830&r2=1618831&view=diff
>> ==============================================================================
>> --- ofbiz/trunk/framework/common/src/org/ofbiz/common/CommonServices.java (original)
>> +++ ofbiz/trunk/framework/common/src/org/ofbiz/common/CommonServices.java Tue Aug 19 10:36:01 2014
>> @@ -44,8 +44,6 @@ import javax.mail.internet.MimeMessage;
>>  import javolution.util.FastList;
>>  import javolution.util.FastMap;
>> 
>> -import org.apache.log4j.Level;
>> -import org.apache.log4j.Logger;
>>  import org.ofbiz.base.metrics.Metrics;
>>  import org.ofbiz.base.metrics.MetricsFactory;
>>  import org.ofbiz.base.util.Debug;
>> @@ -220,23 +218,6 @@ public class CommonServices {
>>          return ServiceUtil.returnSuccess();
>>      }
>> 
>> -    public static Map<String, Object> addOrUpdateLogger(DispatchContext dctc, Map<String, ?> context) {
>> -        String name = (String) context.get("name");
>> -        String level = (String) context.get("level");
>> -        boolean additivity = "Y".equalsIgnoreCase((String) context.get("additivity"));
>> -
>> -        Logger logger = null;
>> -        if ("root".equals(name)) {
>> -            logger = Logger.getRootLogger();
>> -        } else {
>> -            logger = Logger.getLogger(name);
>> -        }
>> -        logger.setLevel(Level.toLevel(level));
>> -        logger.setAdditivity(additivity);
>> -
>> -        return ServiceUtil.returnSuccess();
>> -    }
>> -
>>      public static Map<String, Object> forceGc(DispatchContext dctx, Map<String, ?> context) {
>>          System.gc();
>>          return ServiceUtil.returnSuccess();
>> 
>> Modified: ofbiz/trunk/framework/webtools/webapp/webtools/WEB-INF/actions/log/LogConfiguration.groovy
>> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/webtools/webapp/webtools/WEB-INF/actions/log/LogConfiguration.groovy?rev=1618831&r1=1618830&r2=1618831&view=diff
>> ==============================================================================
>> --- ofbiz/trunk/framework/webtools/webapp/webtools/WEB-INF/actions/log/LogConfiguration.groovy (original)
>> +++ ofbiz/trunk/framework/webtools/webapp/webtools/WEB-INF/actions/log/LogConfiguration.groovy Tue Aug 19 10:36:01 2014
>> @@ -16,39 +16,9 @@
>>   * specific language governing permissions and limitations
>>   * under the License.
>>   */
>> -import java.util.Collections;
>> -import java.util.Comparator;
>> -import java.util.Enumeration;
>> -import java.util.List;
>> -import java.util.Map;
>> -
>> -import org.apache.log4j.Logger;
>> -import org.apache.log4j.spi.LoggerRepository;
>> 
>>  import org.ofbiz.base.util.Debug;
>> -import org.ofbiz.base.util.UtilMisc;
>> -import org.ofbiz.entity.util.EntityUtil;
>> -
>> -
>> -rootLogger = Logger.getRootLogger();
>> -loggerRepository = rootLogger.getLoggerRepository();
>> -
>> -loggerList = [];
>> -for (Enumeration enumeration = loggerRepository.getCurrentLoggers(); enumeration.hasMoreElements();) {
>> -    logger = enumeration.nextElement();
>> -
>> -    if (logger.getLevel() != null) {
>> -        loggerMap = [name : logger.getName(), level : logger.getLevel(), additivity : logger.getAdditivity() ? "Y" : "N", logger : logger];
>> -        loggerList.add(loggerMap);
>> -    }
>> -}
>> -
>> -Collections.sort(loggerList, [compare: {l1, l2 -> l1.name.compareTo(l2.name)}] as Comparator);
>> -
>> -loggerList.add(0, [name : rootLogger.getName(), level : rootLogger.getLevel(), additivity : rootLogger.getAdditivity() ? "Y" : "N", logger : rootLogger]);
>> -context.loggerList = loggerList;
>> 
>> -context.defaultLogger = [name : "org.ofbiz.", level : "INFO", additivity : "Y"];
>>  context.activeDebugLevel = [fatal : Debug.fatalOn() ? "Y" : "N",
>>                              error : Debug.errorOn() ? "Y" : "N",
>>                              warning : Debug.warningOn() ? "Y" : "N",
>> 
>> Modified: ofbiz/trunk/framework/webtools/webapp/webtools/WEB-INF/controller.xml
>> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/webtools/webapp/webtools/WEB-INF/controller.xml?rev=1618831&r1=1618830&r2=1618831&view=diff
>> ==============================================================================
>> --- ofbiz/trunk/framework/webtools/webapp/webtools/WEB-INF/controller.xml (original)
>> +++ ofbiz/trunk/framework/webtools/webapp/webtools/WEB-INF/controller.xml Tue Aug 19 10:36:01 2014
>> @@ -244,16 +244,6 @@ under the License.
>>          <security https="true" auth="true"/>
>>          <response name="success" type="view" value="LogConfiguration"/>
>>      </request-map>
>> -    <request-map uri="AddLogger">
>> -        <security https="true" auth="true"/>
>> -        <event type="service" invoke="addOrUpdateLogger"/>
>> -        <response name="success" type="view" value="LogConfiguration"/>
>> -    </request-map>
>> -    <request-map uri="UpdateLogger">
>> -        <security https="true" auth="true"/>
>> -        <event type="service-multi" invoke="addOrUpdateLogger"/>
>> -        <response name="success" type="view" value="LogConfiguration"/>
>> -    </request-map>
>>      <request-map uri="AdjustDebugLevels">
>>          <security https="true" auth="true"/>
>>          <event type="service" invoke="adjustDebugLevels"/>
>> 
>> Modified: ofbiz/trunk/framework/webtools/widget/LogForms.xml
>> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/webtools/widget/LogForms.xml?rev=1618831&r1=1618830&r2=1618831&view=diff
>> ==============================================================================
>> --- ofbiz/trunk/framework/webtools/widget/LogForms.xml (original)
>> +++ ofbiz/trunk/framework/webtools/widget/LogForms.xml Tue Aug 19 10:36:01 2014
>> @@ -32,43 +32,4 @@ under the License.
>>      <field name="submit" title="${uiLabelMap.CommonUpdate}"><submit/></field>
>>    </form>
>> 
>> -  <form name="AddLogger" type="single" default-map-name="defaultLogger" target="AddLogger"
>> -    header-row-style="header-row" default-table-style="basic-table">
>> -    <field name="name" title="${uiLabelMap.WebtoolsLoggerName}"><text size="50"/></field>
>> -    <field name="level" title="${uiLabelMap.WebtoolsLoggerLevel}">
>> -        <drop-down>
>> -          <option key="OFF"/>
>> -          <option key="FATAL"/>
>> -          <option key="ERROR"/>
>> -          <option key="WARN"/>
>> -          <option key="INFO"/>
>> -          <option key="TRACE"/>
>> -          <option key="DEBUG"/>
>> -          <option key="ALL"/>
>> -        </drop-down>
>> -    </field>
>> -    <field name="additivity" title="${uiLabelMap.WebtoolsLoggerAdditivity}"><check/></field>
>> -    <field name="submit" title="${uiLabelMap.CommonAdd}"><submit/></field>
>> -  </form>
>> -
>> -  <form name="LoggerList" type="multi" target="UpdateLogger" list-name="loggerList" separate-columns="true"
>> -    paginate="false" odd-row-style="alternate-row" default-table-style="basic-table hover-bar">
>> -    <field name="name" title="${uiLabelMap.WebtoolsLoggerName}"><display/></field>
>> -    <field name="level" title="${uiLabelMap.WebtoolsLoggerLevel}">
>> -        <drop-down>
>> -          <option key="OFF"/>
>> -          <option key="FATAL"/>
>> -          <option key="ERROR"/>
>> -          <option key="WARN"/>
>> -          <option key="INFO"/>
>> -          <option key="TRACE"/>
>> -          <option key="DEBUG"/>
>> -          <option key="ALL"/>
>> -        </drop-down>
>> -    </field>
>> -    <field name="additivity" title="${uiLabelMap.WebtoolsLoggerAdditivity}">
>> -      <check/>
>> -    </field>
>> -    <field name="submit" title="${uiLabelMap.CommonUpdate}"><submit/></field>
>> -  </form>
>>  </forms>
>> 
>> Modified: ofbiz/trunk/framework/webtools/widget/LogScreens.xml
>> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/webtools/widget/LogScreens.xml?rev=1618831&r1=1618830&r2=1618831&view=diff
>> ==============================================================================
>> --- ofbiz/trunk/framework/webtools/widget/LogScreens.xml (original)
>> +++ ofbiz/trunk/framework/webtools/widget/LogScreens.xml Tue Aug 19 10:36:01 2014
>> @@ -87,12 +87,6 @@ under the License.
>>                           <screenlet title="${uiLabelMap.WebtoolsDebuggingLevelFormDescription}">
>>                               <include-form name="LevelSwitch" location="component://webtools/widget/LogForms.xml"/>
>>                           </screenlet>
>> -                         <screenlet title="${uiLabelMap.WebtoolsAddLoggerFormDescription}">
>> -                             <include-form name="AddLogger" location="component://webtools/widget/LogForms.xml"/>
>> -                         </screenlet>
>> -                         <screenlet title="${uiLabelMap.WebtoolsLoggerListFormDescription}">
>> -                             <include-form name="LoggerList" location="component://webtools/widget/LogForms.xml"/>
>> -                         </screenlet>
>>                       </decorator-section>
>>                   </decorator-screen>
>>                 </widgets>
>> 
>> Modified: ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/PosTransaction.java
>> URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/PosTransaction.java?rev=1618831&r1=1618830&r2=1618831&view=diff
>> ==============================================================================
>> --- ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/PosTransaction.java (original)
>> +++ ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/PosTransaction.java Tue Aug 19 10:36:01 2014
>> @@ -36,7 +36,6 @@ import net.xoetrope.xui.helper.SwingWork
>>  import org.ofbiz.accounting.payment.PaymentGatewayServices;
>>  import org.ofbiz.base.util.Debug;
>>  import org.ofbiz.base.util.GeneralException;
>> -import org.ofbiz.base.util.Log4jLoggerWriter;
>>  import org.ofbiz.base.util.UtilDateTime;
>>  import org.ofbiz.base.util.UtilFormatOut;
>>  import org.ofbiz.base.util.UtilGenerics;
>> @@ -96,7 +95,6 @@ public class PosTransaction implements S
>>      public static final int INTERNAL_PAYMENT = 1;
>>      public static final int EXTERNAL_PAYMENT = 2;
>> 
>> -    private static PrintWriter defaultPrintWriter = new Log4jLoggerWriter(Debug.getLogger(module));
>>      private static PosTransaction currentTx = null;
>>      private static LifoSet<PosTransaction> savedTx = new LifoSet<PosTransaction>();
>> 
>> @@ -125,7 +123,7 @@ public class PosTransaction implements S
>>          this.session = session;
>>          this.terminalId = session.getId();
>>          this.partyId = "_NA_";
>> -        this.trace = defaultPrintWriter;
>> +        //this.trace = defaultPrintWriter;
>> 
>>          this.productStoreId = (String) session.getAttribute("productStoreId");
>>          this.facilityId = (String) session.getAttribute("facilityId");
>> @@ -1195,6 +1193,7 @@ public class PosTransaction implements S
>>      }
>> 
>>      private void trace(String s1, String s2, Throwable t) {
>> +        /*
>>          if (trace != null) {
>>              String msg = s1;
>>              if (UtilValidate.isNotEmpty(s2)) {
>> @@ -1208,6 +1207,7 @@ public class PosTransaction implements S
>>              trace.println("[POS @ " + terminalId + " TX:" + transactionId + "] - " + msg);
>>              trace.flush();
>>          }
>> +        */
>>      }
>> 
>>      public static synchronized PosTransaction getCurrentTx(XuiSession session) {
>> 
>> 


Re: svn commit: r1618831 - in /ofbiz/trunk: ./ framework/base/config/ framework/base/lib/ framework/base/src/org/ofbiz/base/container/ framework/base/src/org/ofbiz/base/util/ framework/common/servicedef/ framework/common/src/org/ofbiz/common/ framework/web...

Posted by Jacques Le Roux <ja...@les7arts.com>.
Good news, thanks for feedback Adrian

Jacques

Le 19/08/2014 13:35, Adrian Crum a écrit :
> Thanks Jacopo!
>
> No more missing log entries due to logger overflows!
>
> Adrian Crum
> Sandglass Software
> www.sandglass-software.com
>
> On 8/19/2014 11:36 AM, jacopoc@apache.org wrote:
>> Author: jacopoc
>> Date: Tue Aug 19 10:36:01 2014
>> New Revision: 1618831
>>
>> URL: http://svn.apache.org/r1618831
>> Log:
>> OFBIZ-5287: Upgrade to Log4j2
>>
>> Added:
>>      ofbiz/trunk/framework/base/config/log4j2.xml   (with props)
>>      ofbiz/trunk/framework/base/lib/log4j-1.2-api-2.0.1.jar (with props)
>>      ofbiz/trunk/framework/base/lib/log4j-api-2.0.1.jar   (with props)
>>      ofbiz/trunk/framework/base/lib/log4j-core-2.0.1.jar   (with props)
>>      ofbiz/trunk/framework/base/lib/log4j-jcl-2.0.1.jar   (with props)
>>      ofbiz/trunk/framework/base/lib/log4j-slf4j-impl-2.0.1.jar (with props)
>> Removed:
>>      ofbiz/trunk/framework/base/config/log4j.xml
>> ofbiz/trunk/framework/base/lib/avalon-util-exception-1.0.0.jar
>>      ofbiz/trunk/framework/base/lib/log4j-1.2.17.jar
>>      ofbiz/trunk/framework/base/lib/slf4j-log4j12-1.6.4.jar
>> ofbiz/trunk/framework/base/src/org/ofbiz/base/util/Log4jLoggerWriter.java
>> ofbiz/trunk/framework/base/src/org/ofbiz/base/util/NotifyLevel.java
>> Modified:
>>      ofbiz/trunk/LICENSE
>>      ofbiz/trunk/framework/base/config/debug.properties
>> ofbiz/trunk/framework/base/src/org/ofbiz/base/container/ContainerLoader.java
>> ofbiz/trunk/framework/base/src/org/ofbiz/base/util/Debug.java
>>      ofbiz/trunk/framework/common/servicedef/services.xml
>> ofbiz/trunk/framework/common/src/org/ofbiz/common/CommonServices.java
>> ofbiz/trunk/framework/webtools/webapp/webtools/WEB-INF/actions/log/LogConfiguration.groovy
>> ofbiz/trunk/framework/webtools/webapp/webtools/WEB-INF/controller.xml
>>      ofbiz/trunk/framework/webtools/widget/LogForms.xml
>>      ofbiz/trunk/framework/webtools/widget/LogScreens.xml
>> ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/PosTransaction.java
>>
>> Modified: ofbiz/trunk/LICENSE
>> URL: http://svn.apache.org/viewvc/ofbiz/trunk/LICENSE?rev=1618831&r1=1618830&r2=1618831&view=diff
>> ==============================================================================
>> --- ofbiz/trunk/LICENSE (original)
>> +++ ofbiz/trunk/LICENSE Tue Aug 19 10:36:01 2014
>> @@ -28,7 +28,11 @@ framework/base/lib/jakarta-regexp-1.5.ja
>>   framework/base/lib/jpim-0.1.jar
>>   framework/base/lib/juel-impl-2.2.7.jar
>>   framework/base/lib/juel-spi-2.2.7.jar
>> -framework/base/lib/log4j-1.2.17.jar
>> +framework/base/lib/log4j-1.2-api-2.0.1.jar
>> +framework/base/lib/log4j-api-2.0.1.jar
>> +framework/base/lib/log4j-core-2.0.1.jar
>> +framework/base/lib/log4j-jcl-2.0.1.jar
>> +framework/base/lib/log4j-slf4j-impl-2.0.1.jar
>>   framework/base/lib/mx4j-3.0.1.jar
>>   framework/base/lib/mx4j-remote-3.0.1.jar
>>   framework/base/lib/nekohtml-1.9.16.jar
>> @@ -1214,7 +1218,6 @@ MIT/X License:
>>   framework/base/lib/icu4j-52_1.jar
>>   framework/base/lib/jcl-over-slf4j-1.6.4.jar
>>   framework/base/lib/slf4j-api-1.6.4.jar
>> -framework/base/lib/slf4j-log4j12-1.6.4.jar
>>   framework/images/webapp/images/jquery/*
>>   framework/images/webapp/images/date/date.format-1.2.3*.js
>> =========================================================================
>>
>> Modified: ofbiz/trunk/framework/base/config/debug.properties
>> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/config/debug.properties?rev=1618831&r1=1618830&r2=1618831&view=diff
>> ==============================================================================
>> --- ofbiz/trunk/framework/base/config/debug.properties (original)
>> +++ ofbiz/trunk/framework/base/config/debug.properties Tue Aug 19 10:36:01 2014
>> @@ -21,12 +21,6 @@
>>   # OFBiz Debug Settings
>>   ####
>>
>> -# Pack Exception Report Using Avalon Exception Util
>> -pack.exception=true
>> -
>> -# Disable log4j config (used when other app servers handle the config)
>> -disable.log4j.config=false
>> -
>>   # These top level switches are used before calling Log4J, or if Log4J is not used
>>   print.verbose=false
>>   print.timing=true
>>
>> Added: ofbiz/trunk/framework/base/config/log4j2.xml
>> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/config/log4j2.xml?rev=1618831&view=auto
>> ==============================================================================
>> --- ofbiz/trunk/framework/base/config/log4j2.xml (added)
>> +++ ofbiz/trunk/framework/base/config/log4j2.xml Tue Aug 19 10:36:01 2014
>> @@ -0,0 +1,49 @@
>> +<?xml version="1.0" encoding="UTF-8"?>
>> +<Configuration monitorInterval="60">
>> +    <Appenders>
>> +        <Console name="stdout" target="SYSTEM_OUT">
>> +            <PatternLayout pattern="%date{COMPACT} |%-20.20thread |%-20.20logger{1}|%level{length=1}| %message%n"/>
>> +        </Console>
>> +        <RollingFile name="ofbiz" fileName="runtime/logs/ofbiz.log"
>> + filePattern="runtime/logs/ofbiz-%d{yyyy-MM-dd}-%i.log.zip">
>> +            <PatternLayout pattern="%date{COMPACT} |%-20.20thread |%-20.20logger{1}|%level{length=1}| %message%n"/>
>> +            <Policies>
>> +                <TimeBasedTriggeringPolicy/>
>> +                <SizeBasedTriggeringPolicy size="1 MB"/>
>> +            </Policies>
>> +            <DefaultRolloverStrategy max="4"/>
>> +        </RollingFile>
>> +        <RollingFile name="external" fileName="runtime/logs/external.log"
>> + filePattern="runtime/logs/external-%d{yyyy-MM-dd}-%i.log.zip">
>> +            <PatternLayout pattern="%date{COMPACT} |%-20.20thread |%-20.20logger{1}|%level{length=1}| %message%n"/>
>> +            <Policies>
>> +                <TimeBasedTriggeringPolicy/>
>> +                <SizeBasedTriggeringPolicy size="1 MB"/>
>> +            </Policies>
>> +            <DefaultRolloverStrategy max="4"/>
>> +        </RollingFile>
>> +        <Async name="async">
>> +            <AppenderRef ref="ofbiz"/>
>> +            <AppenderRef ref="stdout"/>
>> +        </Async>
>> +    </Appenders>
>> +    <Loggers>
>> +        <logger name="org.ofbiz.base.converter.Converters" level="warn"/>
>> +        <logger name="org.apache" level="warn" additivity="false">
>> +            <appender-ref ref="external"/>
>> +        </logger>
>> +        <logger name="org.apache.tomcat" level="info" additivity="true">
>> +            <appender-ref ref="external"/>
>> +        </logger>
>> +        <logger name="org.apache.catalina" level="info" additivity="true">
>> +            <appender-ref ref="external"/>
>> +        </logger>
>> +        <logger name="freemarker" level="warn" additivity="false">
>> +            <appender-ref ref="external"/>
>> +        </logger>
>> +
>> +        <Root level="all">
>> +            <AppenderRef ref="async"/>
>> +        </Root>
>> +    </Loggers>
>> +</Configuration>
>>
>> Propchange: ofbiz/trunk/framework/base/config/log4j2.xml
>> ------------------------------------------------------------------------------
>>      svn:eol-style = native
>>
>> Propchange: ofbiz/trunk/framework/base/config/log4j2.xml
>> ------------------------------------------------------------------------------
>>      svn:keywords = Date Rev Author URL Id
>>
>> Propchange: ofbiz/trunk/framework/base/config/log4j2.xml
>> ------------------------------------------------------------------------------
>>      svn:mime-type = text/xml
>>
>> Added: ofbiz/trunk/framework/base/lib/log4j-1.2-api-2.0.1.jar
>> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/lib/log4j-1.2-api-2.0.1.jar?rev=1618831&view=auto
>> ==============================================================================
>> Binary file - no diff available.
>>
>> Propchange: ofbiz/trunk/framework/base/lib/log4j-1.2-api-2.0.1.jar
>> ------------------------------------------------------------------------------
>>      svn:mime-type = application/octet-stream
>>
>> Added: ofbiz/trunk/framework/base/lib/log4j-api-2.0.1.jar
>> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/lib/log4j-api-2.0.1.jar?rev=1618831&view=auto
>> ==============================================================================
>> Binary file - no diff available.
>>
>> Propchange: ofbiz/trunk/framework/base/lib/log4j-api-2.0.1.jar
>> ------------------------------------------------------------------------------
>>      svn:mime-type = application/octet-stream
>>
>> Added: ofbiz/trunk/framework/base/lib/log4j-core-2.0.1.jar
>> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/lib/log4j-core-2.0.1.jar?rev=1618831&view=auto
>> ==============================================================================
>> Binary file - no diff available.
>>
>> Propchange: ofbiz/trunk/framework/base/lib/log4j-core-2.0.1.jar
>> ------------------------------------------------------------------------------
>>      svn:mime-type = application/octet-stream
>>
>> Added: ofbiz/trunk/framework/base/lib/log4j-jcl-2.0.1.jar
>> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/lib/log4j-jcl-2.0.1.jar?rev=1618831&view=auto
>> ==============================================================================
>> Binary file - no diff available.
>>
>> Propchange: ofbiz/trunk/framework/base/lib/log4j-jcl-2.0.1.jar
>> ------------------------------------------------------------------------------
>>      svn:mime-type = application/octet-stream
>>
>> Added: ofbiz/trunk/framework/base/lib/log4j-slf4j-impl-2.0.1.jar
>> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/lib/log4j-slf4j-impl-2.0.1.jar?rev=1618831&view=auto
>> ==============================================================================
>> Binary file - no diff available.
>>
>> Propchange: ofbiz/trunk/framework/base/lib/log4j-slf4j-impl-2.0.1.jar
>> ------------------------------------------------------------------------------
>>      svn:mime-type = application/octet-stream
>>
>> Modified: ofbiz/trunk/framework/base/src/org/ofbiz/base/container/ContainerLoader.java
>> URL: 
>> http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/src/org/ofbiz/base/container/ContainerLoader.java?rev=1618831&r1=1618830&r2=1618831&view=diff
>> ==============================================================================
>> --- ofbiz/trunk/framework/base/src/org/ofbiz/base/container/ContainerLoader.java (original)
>> +++ ofbiz/trunk/framework/base/src/org/ofbiz/base/container/ContainerLoader.java Tue Aug 19 10:36:01 2014
>> @@ -27,8 +27,6 @@ import java.util.LinkedList;
>>   import java.util.List;
>>   import java.util.Map;
>>
>> -import org.apache.log4j.Appender;
>> -import org.apache.log4j.Logger;
>>   import org.ofbiz.base.component.ComponentConfig;
>>   import org.ofbiz.base.start.Config;
>>   import org.ofbiz.base.start.StartupException;
>> @@ -270,12 +268,6 @@ public class ContainerLoader implements
>>                       Debug.logInfo("Stopped container " + container.getName(), module);
>>                   }
>>               }
>> -            @SuppressWarnings("unchecked")
>> -            Enumeration<Appender> en = Logger.getRootLogger().getAllAppenders();
>> -            while (en.hasMoreElements()) {
>> -                Appender appender = en.nextElement();
>> -                appender.close();
>> -            }
>>           }
>>       }
>>   }
>>
>> Modified: ofbiz/trunk/framework/base/src/org/ofbiz/base/util/Debug.java
>> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/src/org/ofbiz/base/util/Debug.java?rev=1618831&r1=1618830&r2=1618831&view=diff
>> ==============================================================================
>> --- ofbiz/trunk/framework/base/src/org/ofbiz/base/util/Debug.java (original)
>> +++ ofbiz/trunk/framework/base/src/org/ofbiz/base/util/Debug.java Tue Aug 19 10:36:01 2014
>> @@ -18,23 +18,15 @@
>> *******************************************************************************/
>>   package org.ofbiz.base.util;
>>
>> -import java.io.IOException;
>>   import java.io.PrintStream;
>>   import java.io.PrintWriter;
>> -import java.util.Enumeration;
>>   import java.util.Formatter;
>>   import java.util.HashMap;
>>   import java.util.Locale;
>>   import java.util.Map;
>>   import java.util.TimeZone;
>>
>> -import org.apache.avalon.util.exception.ExceptionHelper;
>> -import org.apache.log4j.Appender;
>> -import org.apache.log4j.Level;
>> -import org.apache.log4j.Logger;
>> -import org.apache.log4j.PatternLayout;
>> -import org.apache.log4j.RollingFileAppender;
>> -import org.apache.log4j.spi.LoggerRepository;
>> +import org.apache.logging.log4j.*;
>>   import org.ofbiz.base.conversion.ConversionException;
>>   import org.ofbiz.base.conversion.DateTimeConverters.DateToString;
>>
>> @@ -57,22 +49,20 @@ public final class Debug {
>>       public static final int WARNING = 5;
>>       public static final int ERROR = 6;
>>       public static final int FATAL = 7;
>> -    public static final int NOTIFY = 8;
>>
>> -    public static final String[] levels = {"Always", "Verbose", "Timing", "Info", "Important", "Warning", "Error", "Fatal", "Notify"};
>> -    public static final String[] levelProps = {"", "print.verbose", "print.timing", "print.info", "print.important", "print.warning", 
>> "print.error", "print.fatal", "print.notify"};
>> -    public static final Level[] levelObjs = {Level.INFO, Level.DEBUG, Level.INFO, Level.INFO, Level.INFO, Level.WARN, Level.ERROR, Level.FATAL, 
>> NotifyLevel.NOTIFY};
>> +    public static final String[] levels = {"Always", "Verbose", "Timing", "Info", "Important", "Warning", "Error", "Fatal"};
>> +    public static final String[] levelProps = {"", "print.verbose", "print.timing", "print.info", "print.important", "print.warning", 
>> "print.error", "print.fatal"};
>> +    public static final Level[] levelObjs = {Level.FATAL, Level.DEBUG, Level.TRACE, Level.INFO, Level.INFO, Level.WARN, Level.ERROR, Level.FATAL};
>>
>>       protected static Map<String, Integer> levelStringMap = new HashMap<String, Integer>();
>>
>>       protected static PrintStream printStream = System.out;
>>       protected static PrintWriter printWriter = new PrintWriter(printStream);
>>
>> -    protected static boolean levelOnCache[] = new boolean[9];
>> -    protected static boolean packException = true;
>> +    protected static boolean levelOnCache[] = new boolean[8];
>>       protected static final boolean useLevelOnCache = true;
>>
>> -    protected static Logger root = Logger.getRootLogger();
>> +    protected static Logger root = LogManager.getRootLogger();
>>
>>       static {
>>           levelStringMap.put("verbose", Debug.VERBOSE);
>> @@ -83,32 +73,11 @@ public final class Debug {
>>           levelStringMap.put("error", Debug.ERROR);
>>           levelStringMap.put("fatal", Debug.FATAL);
>>           levelStringMap.put("always", Debug.ALWAYS);
>> -        levelStringMap.put("notify", Debug.NOTIFY);
>> -
>> -        // initialize Log4J
>> -        if (!UtilProperties.propertyValueEqualsIgnoreCase("debug.properties", "disable.log4j.config", "true")) {
>> - org.apache.log4j.xml.DOMConfigurator.configure(UtilURL.fromResource("log4j.xml"));
>> -        }
>>
>>           // initialize levelOnCache
>> -        for (int i = 0; i < 9; i++) {
>> +        for (int i = 0; i < levelOnCache.length; i++) {
>>               levelOnCache[i] = (i == Debug.ALWAYS || UtilProperties.propertyValueEqualsIgnoreCase("debug.properties", levelProps[i], "true"));
>>           }
>> -
>> -        if (SYS_DEBUG != null) {
>> -            for (int x = 0; x < 8; x++) {
>> -                levelOnCache[x] = true;
>> -            }
>> -            LoggerRepository repo = root.getLoggerRepository();
>> -            Enumeration<Logger> en = UtilGenerics.cast(repo.getCurrentLoggers());
>> -            while (en.hasMoreElements()) {
>> -                Logger thisLogger = en.nextElement();
>> -                thisLogger.setLevel(Level.DEBUG);
>> -            }
>> -        }
>> -
>> -        // configure exception packing
>> -        packException = UtilProperties.propertyValueEqualsIgnoreCase("debug.properties", "pack.exception", "true");
>>       }
>>
>>       public static PrintStream getPrintStream() {
>> @@ -126,7 +95,7 @@ public final class Debug {
>>
>>       public static Logger getLogger(String module) {
>>           if (UtilValidate.isNotEmpty(module)) {
>> -            return Logger.getLogger(module);
>> +            return LogManager.getLogger(module);
>>           } else {
>>               return root;
>>           }
>> @@ -138,16 +107,6 @@ public final class Debug {
>>           return levelStringMap.get(levelName.toLowerCase());
>>       }
>>
>> -    /** Gets an int representing the level number from a String representing the level name; if level not found defaults to Debug.INFO */
>> -    public static int getLevelFromStringWithDefault(String levelName) {
>> -        Integer levelInt = getLevelFromString(levelName);
>> -        if (levelInt == null) {
>> -            return Debug.INFO;
>> -        } else {
>> -            return levelInt;
>> -        }
>> -    }
>> -
>>       public static void log(int level, Throwable t, String msg, String module) {
>>           log(level, t, msg, module, "org.ofbiz.base.util.Debug", emptyParams);
>>       }
>> @@ -161,86 +120,19 @@ public final class Debug {
>>       }
>>
>>       public static void log(int level, Throwable t, String msg, String module, String callingClass, Object... params) {
>> -        Logger logger = null;
>> -        boolean offSetInLogConfig = false;
>> -        boolean fatalSetInLogConfig = false;
>> -        boolean errorSetInLogConfig = false;
>> -        boolean warnSetInLogConfig = false;
>> -        boolean infoSetInLogConfig = false;
>> -        boolean traceSetInLogConfig = false;
>> -        boolean debugSetInLogConfig = false;
>> -        boolean allSetInLogConfig = false;
>> -        boolean setInLogConfig = false;
>> -
>> -        if (useLog4J) {
>> -            logger = getLogger(module);
>> -
>> -            // Class
>> -            if (logger != null) {
>> -                Level loggerLevel = logger.getLevel();
>> -                offSetInLogConfig = Level.OFF.equals(loggerLevel);
>> -                fatalSetInLogConfig = Level.FATAL.equals(loggerLevel);
>> -                errorSetInLogConfig = Level.ERROR.equals(loggerLevel);
>> -                warnSetInLogConfig = Level.WARN.equals(loggerLevel);
>> -                infoSetInLogConfig = Level.INFO.equals(loggerLevel);
>> -                traceSetInLogConfig = Level.TRACE.equals(loggerLevel);
>> -                debugSetInLogConfig = Level.DEBUG.equals(loggerLevel);
>> -                allSetInLogConfig = Level.ALL.equals(loggerLevel);
>> -            }
>> -            setInLogConfig = offSetInLogConfig || fatalSetInLogConfig || errorSetInLogConfig || warnSetInLogConfig || infoSetInLogConfig
>> -                            ||  traceSetInLogConfig || debugSetInLogConfig || allSetInLogConfig;
>> -            // Package
>> -            // !setInLogConfig : for a Class logger, Class setting takes precedence on Package if both are used
>> -            if (!noModuleModule.equals(module) && module != null && !module.isEmpty() && !setInLogConfig) {
>> -                Logger packageLogger = getLogger(module.substring(0, module.lastIndexOf(".")));
>> -                if (packageLogger != null) {
>> -                    Level packageLoggerLevel = packageLogger.getLevel();
>> -                    offSetInLogConfig |= Level.OFF.equals(packageLoggerLevel);
>> -                    fatalSetInLogConfig |= Level.FATAL.equals(packageLoggerLevel);
>> -                    errorSetInLogConfig |= Level.ERROR.equals(packageLoggerLevel);
>> -                    warnSetInLogConfig |= Level.WARN.equals(packageLoggerLevel);
>> -                    infoSetInLogConfig |= Level.INFO.equals(packageLoggerLevel);
>> -                    traceSetInLogConfig |= Level.TRACE.equals(packageLoggerLevel);
>> -                    debugSetInLogConfig |= Level.DEBUG.equals(packageLoggerLevel);
>> -                    allSetInLogConfig |= Level.ALL.equals(packageLoggerLevel);
>> -                }
>> -            }
>> -            setInLogConfig = offSetInLogConfig || fatalSetInLogConfig || errorSetInLogConfig || warnSetInLogConfig || infoSetInLogConfig
>> -                            ||  traceSetInLogConfig || debugSetInLogConfig || allSetInLogConfig;
>> -        }
>> -
>> -        if (isOn(level) || setInLogConfig) {
>> +        if (isOn(level)) {
>>               if (msg != null && params.length > 0) {
>>                   StringBuilder sb = new StringBuilder();
>>                   Formatter formatter = new Formatter(sb);
>>                   formatter.format(msg, params);
>>                   msg = sb.toString();
>>               }
>> -            // pack the exception
>> -            if (packException && t != null) {
>> -                msg = System.getProperty("line.separator") + ExceptionHelper.packException(msg, t, true);
>> -                t = null;
>> -            }
>>
>>               // log
>>               if (useLog4J) {
>> -                if (SYS_DEBUG != null) {
>> -                    logger.setLevel(Level.DEBUG);
>> -                }
>> -                if (offSetInLogConfig) {
>> -                    // Not printing anything
>> -                } else if (fatalSetInLogConfig && Level.FATAL.equals(levelObjs[level])
>> -                        || errorSetInLogConfig && Level.ERROR.equals(levelObjs[level])
>> -                        || warnSetInLogConfig && Level.WARN.equals(levelObjs[level])
>> -                        || infoSetInLogConfig && Level.INFO.equals(levelObjs[level])
>> -                        || debugSetInLogConfig && Level.DEBUG.equals(levelObjs[level])
>> -                        || traceSetInLogConfig && Level.DEBUG.equals(levelObjs[level])) {
>> -                    logger.log(callingClass, levelObjs[level], msg, t);
>> -                } else if (allSetInLogConfig) {
>> -                    logger.log(callingClass, Level.INFO, msg, t);
>> -                } else {
>> -                    logger.log(callingClass, levelObjs[level], msg, t);
>> -                }
>> +                Logger logger = getLogger(module);
>> +                //callingClass
>> +                logger.log(levelObjs[level], msg, t);
>>               } else {
>>                   StringBuilder prefixBuf = new StringBuilder();
>>
>> @@ -276,7 +168,7 @@ public final class Debug {
>>           if (useLevelOnCache) {
>>               return levelOnCache[level];
>>           } else {
>> -            return (level == Debug.ALWAYS || UtilProperties.propertyValueEqualsIgnoreCase("debug", levelProps[level], "true"));
>> +            return (level == Debug.ALWAYS || UtilProperties.propertyValueEqualsIgnoreCase("debug.properties", levelProps[level], "true"));
>>           }
>>       }
>>
>> @@ -481,26 +373,6 @@ public final class Debug {
>>           log(Debug.FATAL, t, msg, module, params);
>>       }
>>
>> -    public static void logNotify(String msg, String module) {
>> -        log(Debug.NOTIFY, null, msg, module, emptyParams);
>> -    }
>> -
>> -    public static void logNotify(String msg, String module, Object... params) {
>> -        log(Debug.NOTIFY, null, msg, module, params);
>> -    }
>> -
>> -    public static void logNotify(Throwable t, String module) {
>> -        log(Debug.NOTIFY, t, null, module, emptyParams);
>> -    }
>> -
>> -    public static void logNotify(Throwable t, String msg, String module) {
>> -        log(Debug.NOTIFY, t, msg, module, emptyParams);
>> -    }
>> -
>> -    public static void logNotify(Throwable t, String msg, String module, Object... params) {
>> -        log(Debug.NOTIFY, t, msg, module, params);
>> -    }
>> -
>>       public static void set(int level, boolean on) {
>>           if (!useLevelOnCache)
>>               return;
>> @@ -512,72 +384,4 @@ public final class Debug {
>>               return true;
>>           return levelOnCache[level];
>>       }
>> -
>> -    public static synchronized Appender getNewFileAppender(String name, String logFile, long maxSize, int backupIdx, String pattern) {
>> -        if (pattern == null) {
>> -            pattern = "%-5r[%24F:%-3L:%-5p]%x %m%n";
>> -        }
>> -
>> -        PatternLayout layout = new PatternLayout(pattern);
>> -        layout.activateOptions();
>> -
>> -        RollingFileAppender newAppender = null;
>> -        try {
>> -            newAppender = new RollingFileAppender(layout, logFile, true);
>> -        } catch (IOException e) {
>> -            logFatal(e, Debug.class.getName());
>> -        }
>> -
>> -        if (newAppender != null) {
>> -            if (backupIdx > 0) {
>> -                newAppender.setMaxBackupIndex(backupIdx);
>> -            }
>> -            if (maxSize > 0) {
>> -                newAppender.setMaximumFileSize(maxSize);
>> -            }
>> -            newAppender.setThreshold(Level.DEBUG);
>> -            newAppender.activateOptions();
>> -            newAppender.setName(name);
>> -        }
>> -
>> -        return newAppender;
>> -    }
>> -
>> -    public static boolean registerFileAppender(String module, String name, String logFile, long maxSize, int backupIdx, String pattern) {
>> -        Logger logger = Logger.getLogger(module);
>> -        boolean found = false;
>> -
>> -        Appender foundAppender = logger.getAppender(name);
>> -        if (foundAppender == null) {
>> -            Enumeration<Logger> currentLoggerEnum = UtilGenerics.cast(Logger.getRootLogger().getLoggerRepository().getCurrentLoggers());
>> -            while (currentLoggerEnum.hasMoreElements() && foundAppender == null) {
>> -                Logger log = currentLoggerEnum.nextElement();
>> -                foundAppender = log.getAppender(name);
>> -            }
>> -        } else {
>> -            return true;
>> -        }
>> -
>> -        if (foundAppender == null) {
>> -            if (logFile != null) {
>> -                foundAppender = getNewFileAppender(name, logFile, maxSize, backupIdx, pattern);
>> -                if (foundAppender != null) {
>> -                    found = true;
>> -                }
>> -            }
>> -        } else {
>> -            found = true;
>> -        }
>> -
>> -        logger.addAppender(foundAppender);
>> -        return found;
>> -    }
>> -
>> -    public static boolean registerFileAppender(String module, String name, String logFile) {
>> -        return registerFileAppender(module, name, logFile, 0, 10, null);
>> -    }
>> -
>> -    public static boolean registerFileAppender(String module, String name) {
>> -        return registerFileAppender(module, name, null, -1, -1, null);
>> -    }
>>   }
>>
>> Modified: ofbiz/trunk/framework/common/servicedef/services.xml
>> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/common/servicedef/services.xml?rev=1618831&r1=1618830&r2=1618831&view=diff
>> ==============================================================================
>> --- ofbiz/trunk/framework/common/servicedef/services.xml (original)
>> +++ ofbiz/trunk/framework/common/servicedef/services.xml Tue Aug 19 10:36:01 2014
>> @@ -86,13 +86,6 @@ under the License.
>>           <attribute name="timing" type="String" mode="IN" optional="true"/>
>>           <attribute name="verbose" type="String" mode="IN" optional="true"/>
>>       </service>
>> -    <service name="addOrUpdateLogger" engine="java"
>> -             location="org.ofbiz.common.CommonServices" invoke="addOrUpdateLogger" auth="true">
>> -        <description>Add/Update logger in logging system</description>
>> -        <attribute name="name" type="String" mode="IN" optional="false"/>
>> -        <attribute name="level" type="String" mode="IN" optional="false"/>
>> -        <attribute name="additivity" type="String" mode="IN" optional="true"/>
>> -    </service>
>>
>>       <service name="displayXaDebugInfo" engine="java"
>>               location="org.ofbiz.common.CommonServices" invoke="displayXaDebugInfo" auth="true">
>>
>> Modified: ofbiz/trunk/framework/common/src/org/ofbiz/common/CommonServices.java
>> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/common/src/org/ofbiz/common/CommonServices.java?rev=1618831&r1=1618830&r2=1618831&view=diff
>> ==============================================================================
>> --- ofbiz/trunk/framework/common/src/org/ofbiz/common/CommonServices.java (original)
>> +++ ofbiz/trunk/framework/common/src/org/ofbiz/common/CommonServices.java Tue Aug 19 10:36:01 2014
>> @@ -44,8 +44,6 @@ import javax.mail.internet.MimeMessage;
>>   import javolution.util.FastList;
>>   import javolution.util.FastMap;
>>
>> -import org.apache.log4j.Level;
>> -import org.apache.log4j.Logger;
>>   import org.ofbiz.base.metrics.Metrics;
>>   import org.ofbiz.base.metrics.MetricsFactory;
>>   import org.ofbiz.base.util.Debug;
>> @@ -220,23 +218,6 @@ public class CommonServices {
>>           return ServiceUtil.returnSuccess();
>>       }
>>
>> -    public static Map<String, Object> addOrUpdateLogger(DispatchContext dctc, Map<String, ?> context) {
>> -        String name = (String) context.get("name");
>> -        String level = (String) context.get("level");
>> -        boolean additivity = "Y".equalsIgnoreCase((String) context.get("additivity"));
>> -
>> -        Logger logger = null;
>> -        if ("root".equals(name)) {
>> -            logger = Logger.getRootLogger();
>> -        } else {
>> -            logger = Logger.getLogger(name);
>> -        }
>> -        logger.setLevel(Level.toLevel(level));
>> -        logger.setAdditivity(additivity);
>> -
>> -        return ServiceUtil.returnSuccess();
>> -    }
>> -
>>       public static Map<String, Object> forceGc(DispatchContext dctx, Map<String, ?> context) {
>>           System.gc();
>>           return ServiceUtil.returnSuccess();
>>
>> Modified: ofbiz/trunk/framework/webtools/webapp/webtools/WEB-INF/actions/log/LogConfiguration.groovy
>> URL: 
>> http://svn.apache.org/viewvc/ofbiz/trunk/framework/webtools/webapp/webtools/WEB-INF/actions/log/LogConfiguration.groovy?rev=1618831&r1=1618830&r2=1618831&view=diff
>> ==============================================================================
>> --- ofbiz/trunk/framework/webtools/webapp/webtools/WEB-INF/actions/log/LogConfiguration.groovy (original)
>> +++ ofbiz/trunk/framework/webtools/webapp/webtools/WEB-INF/actions/log/LogConfiguration.groovy Tue Aug 19 10:36:01 2014
>> @@ -16,39 +16,9 @@
>>    * specific language governing permissions and limitations
>>    * under the License.
>>    */
>> -import java.util.Collections;
>> -import java.util.Comparator;
>> -import java.util.Enumeration;
>> -import java.util.List;
>> -import java.util.Map;
>> -
>> -import org.apache.log4j.Logger;
>> -import org.apache.log4j.spi.LoggerRepository;
>>
>>   import org.ofbiz.base.util.Debug;
>> -import org.ofbiz.base.util.UtilMisc;
>> -import org.ofbiz.entity.util.EntityUtil;
>> -
>> -
>> -rootLogger = Logger.getRootLogger();
>> -loggerRepository = rootLogger.getLoggerRepository();
>> -
>> -loggerList = [];
>> -for (Enumeration enumeration = loggerRepository.getCurrentLoggers(); enumeration.hasMoreElements();) {
>> -    logger = enumeration.nextElement();
>> -
>> -    if (logger.getLevel() != null) {
>> -        loggerMap = [name : logger.getName(), level : logger.getLevel(), additivity : logger.getAdditivity() ? "Y" : "N", logger : logger];
>> -        loggerList.add(loggerMap);
>> -    }
>> -}
>> -
>> -Collections.sort(loggerList, [compare: {l1, l2 -> l1.name.compareTo(l2.name)}] as Comparator);
>> -
>> -loggerList.add(0, [name : rootLogger.getName(), level : rootLogger.getLevel(), additivity : rootLogger.getAdditivity() ? "Y" : "N", logger : 
>> rootLogger]);
>> -context.loggerList = loggerList;
>>
>> -context.defaultLogger = [name : "org.ofbiz.", level : "INFO", additivity : "Y"];
>>   context.activeDebugLevel = [fatal : Debug.fatalOn() ? "Y" : "N",
>>                               error : Debug.errorOn() ? "Y" : "N",
>>                               warning : Debug.warningOn() ? "Y" : "N",
>>
>> Modified: ofbiz/trunk/framework/webtools/webapp/webtools/WEB-INF/controller.xml
>> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/webtools/webapp/webtools/WEB-INF/controller.xml?rev=1618831&r1=1618830&r2=1618831&view=diff
>> ==============================================================================
>> --- ofbiz/trunk/framework/webtools/webapp/webtools/WEB-INF/controller.xml (original)
>> +++ ofbiz/trunk/framework/webtools/webapp/webtools/WEB-INF/controller.xml Tue Aug 19 10:36:01 2014
>> @@ -244,16 +244,6 @@ under the License.
>>           <security https="true" auth="true"/>
>>           <response name="success" type="view" value="LogConfiguration"/>
>>       </request-map>
>> -    <request-map uri="AddLogger">
>> -        <security https="true" auth="true"/>
>> -        <event type="service" invoke="addOrUpdateLogger"/>
>> -        <response name="success" type="view" value="LogConfiguration"/>
>> -    </request-map>
>> -    <request-map uri="UpdateLogger">
>> -        <security https="true" auth="true"/>
>> -        <event type="service-multi" invoke="addOrUpdateLogger"/>
>> -        <response name="success" type="view" value="LogConfiguration"/>
>> -    </request-map>
>>       <request-map uri="AdjustDebugLevels">
>>           <security https="true" auth="true"/>
>>           <event type="service" invoke="adjustDebugLevels"/>
>>
>> Modified: ofbiz/trunk/framework/webtools/widget/LogForms.xml
>> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/webtools/widget/LogForms.xml?rev=1618831&r1=1618830&r2=1618831&view=diff
>> ==============================================================================
>> --- ofbiz/trunk/framework/webtools/widget/LogForms.xml (original)
>> +++ ofbiz/trunk/framework/webtools/widget/LogForms.xml Tue Aug 19 10:36:01 2014
>> @@ -32,43 +32,4 @@ under the License.
>>       <field name="submit" title="${uiLabelMap.CommonUpdate}"><submit/></field>
>>     </form>
>>
>> -  <form name="AddLogger" type="single" default-map-name="defaultLogger" target="AddLogger"
>> -    header-row-style="header-row" default-table-style="basic-table">
>> -    <field name="name" title="${uiLabelMap.WebtoolsLoggerName}"><text size="50"/></field>
>> -    <field name="level" title="${uiLabelMap.WebtoolsLoggerLevel}">
>> -        <drop-down>
>> -          <option key="OFF"/>
>> -          <option key="FATAL"/>
>> -          <option key="ERROR"/>
>> -          <option key="WARN"/>
>> -          <option key="INFO"/>
>> -          <option key="TRACE"/>
>> -          <option key="DEBUG"/>
>> -          <option key="ALL"/>
>> -        </drop-down>
>> -    </field>
>> -    <field name="additivity" title="${uiLabelMap.WebtoolsLoggerAdditivity}"><check/></field>
>> -    <field name="submit" title="${uiLabelMap.CommonAdd}"><submit/></field>
>> -  </form>
>> -
>> -  <form name="LoggerList" type="multi" target="UpdateLogger" list-name="loggerList" separate-columns="true"
>> -    paginate="false" odd-row-style="alternate-row" default-table-style="basic-table hover-bar">
>> -    <field name="name" title="${uiLabelMap.WebtoolsLoggerName}"><display/></field>
>> -    <field name="level" title="${uiLabelMap.WebtoolsLoggerLevel}">
>> -        <drop-down>
>> -          <option key="OFF"/>
>> -          <option key="FATAL"/>
>> -          <option key="ERROR"/>
>> -          <option key="WARN"/>
>> -          <option key="INFO"/>
>> -          <option key="TRACE"/>
>> -          <option key="DEBUG"/>
>> -          <option key="ALL"/>
>> -        </drop-down>
>> -    </field>
>> -    <field name="additivity" title="${uiLabelMap.WebtoolsLoggerAdditivity}">
>> -      <check/>
>> -    </field>
>> -    <field name="submit" title="${uiLabelMap.CommonUpdate}"><submit/></field>
>> -  </form>
>>   </forms>
>>
>> Modified: ofbiz/trunk/framework/webtools/widget/LogScreens.xml
>> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/webtools/widget/LogScreens.xml?rev=1618831&r1=1618830&r2=1618831&view=diff
>> ==============================================================================
>> --- ofbiz/trunk/framework/webtools/widget/LogScreens.xml (original)
>> +++ ofbiz/trunk/framework/webtools/widget/LogScreens.xml Tue Aug 19 10:36:01 2014
>> @@ -87,12 +87,6 @@ under the License.
>>                            <screenlet title="${uiLabelMap.WebtoolsDebuggingLevelFormDescription}">
>>                                <include-form name="LevelSwitch" location="component://webtools/widget/LogForms.xml"/>
>>                            </screenlet>
>> -                         <screenlet title="${uiLabelMap.WebtoolsAddLoggerFormDescription}">
>> -                             <include-form name="AddLogger" location="component://webtools/widget/LogForms.xml"/>
>> -                         </screenlet>
>> -                         <screenlet title="${uiLabelMap.WebtoolsLoggerListFormDescription}">
>> -                             <include-form name="LoggerList" location="component://webtools/widget/LogForms.xml"/>
>> -                         </screenlet>
>>                        </decorator-section>
>>                    </decorator-screen>
>>                  </widgets>
>>
>> Modified: ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/PosTransaction.java
>> URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/PosTransaction.java?rev=1618831&r1=1618830&r2=1618831&view=diff
>> ==============================================================================
>> --- ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/PosTransaction.java (original)
>> +++ ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/PosTransaction.java Tue Aug 19 10:36:01 2014
>> @@ -36,7 +36,6 @@ import net.xoetrope.xui.helper.SwingWork
>>   import org.ofbiz.accounting.payment.PaymentGatewayServices;
>>   import org.ofbiz.base.util.Debug;
>>   import org.ofbiz.base.util.GeneralException;
>> -import org.ofbiz.base.util.Log4jLoggerWriter;
>>   import org.ofbiz.base.util.UtilDateTime;
>>   import org.ofbiz.base.util.UtilFormatOut;
>>   import org.ofbiz.base.util.UtilGenerics;
>> @@ -96,7 +95,6 @@ public class PosTransaction implements S
>>       public static final int INTERNAL_PAYMENT = 1;
>>       public static final int EXTERNAL_PAYMENT = 2;
>>
>> -    private static PrintWriter defaultPrintWriter = new Log4jLoggerWriter(Debug.getLogger(module));
>>       private static PosTransaction currentTx = null;
>>       private static LifoSet<PosTransaction> savedTx = new LifoSet<PosTransaction>();
>>
>> @@ -125,7 +123,7 @@ public class PosTransaction implements S
>>           this.session = session;
>>           this.terminalId = session.getId();
>>           this.partyId = "_NA_";
>> -        this.trace = defaultPrintWriter;
>> +        //this.trace = defaultPrintWriter;
>>
>>           this.productStoreId = (String) session.getAttribute("productStoreId");
>>           this.facilityId = (String) session.getAttribute("facilityId");
>> @@ -1195,6 +1193,7 @@ public class PosTransaction implements S
>>       }
>>
>>       private void trace(String s1, String s2, Throwable t) {
>> +        /*
>>           if (trace != null) {
>>               String msg = s1;
>>               if (UtilValidate.isNotEmpty(s2)) {
>> @@ -1208,6 +1207,7 @@ public class PosTransaction implements S
>>               trace.println("[POS @ " + terminalId + " TX:" + transactionId + "] - " + msg);
>>               trace.flush();
>>           }
>> +        */
>>       }
>>
>>       public static synchronized PosTransaction getCurrentTx(XuiSession session) {
>>
>>
>

Re: svn commit: r1618831 - in /ofbiz/trunk: ./ framework/base/config/ framework/base/lib/ framework/base/src/org/ofbiz/base/container/ framework/base/src/org/ofbiz/base/util/ framework/common/servicedef/ framework/common/src/org/ofbiz/common/ framework/web...

Posted by Adrian Crum <ad...@sandglass-software.com>.
Thanks Jacopo!

No more missing log entries due to logger overflows!

Adrian Crum
Sandglass Software
www.sandglass-software.com

On 8/19/2014 11:36 AM, jacopoc@apache.org wrote:
> Author: jacopoc
> Date: Tue Aug 19 10:36:01 2014
> New Revision: 1618831
>
> URL: http://svn.apache.org/r1618831
> Log:
> OFBIZ-5287: Upgrade to Log4j2
>
> Added:
>      ofbiz/trunk/framework/base/config/log4j2.xml   (with props)
>      ofbiz/trunk/framework/base/lib/log4j-1.2-api-2.0.1.jar   (with props)
>      ofbiz/trunk/framework/base/lib/log4j-api-2.0.1.jar   (with props)
>      ofbiz/trunk/framework/base/lib/log4j-core-2.0.1.jar   (with props)
>      ofbiz/trunk/framework/base/lib/log4j-jcl-2.0.1.jar   (with props)
>      ofbiz/trunk/framework/base/lib/log4j-slf4j-impl-2.0.1.jar   (with props)
> Removed:
>      ofbiz/trunk/framework/base/config/log4j.xml
>      ofbiz/trunk/framework/base/lib/avalon-util-exception-1.0.0.jar
>      ofbiz/trunk/framework/base/lib/log4j-1.2.17.jar
>      ofbiz/trunk/framework/base/lib/slf4j-log4j12-1.6.4.jar
>      ofbiz/trunk/framework/base/src/org/ofbiz/base/util/Log4jLoggerWriter.java
>      ofbiz/trunk/framework/base/src/org/ofbiz/base/util/NotifyLevel.java
> Modified:
>      ofbiz/trunk/LICENSE
>      ofbiz/trunk/framework/base/config/debug.properties
>      ofbiz/trunk/framework/base/src/org/ofbiz/base/container/ContainerLoader.java
>      ofbiz/trunk/framework/base/src/org/ofbiz/base/util/Debug.java
>      ofbiz/trunk/framework/common/servicedef/services.xml
>      ofbiz/trunk/framework/common/src/org/ofbiz/common/CommonServices.java
>      ofbiz/trunk/framework/webtools/webapp/webtools/WEB-INF/actions/log/LogConfiguration.groovy
>      ofbiz/trunk/framework/webtools/webapp/webtools/WEB-INF/controller.xml
>      ofbiz/trunk/framework/webtools/widget/LogForms.xml
>      ofbiz/trunk/framework/webtools/widget/LogScreens.xml
>      ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/PosTransaction.java
>
> Modified: ofbiz/trunk/LICENSE
> URL: http://svn.apache.org/viewvc/ofbiz/trunk/LICENSE?rev=1618831&r1=1618830&r2=1618831&view=diff
> ==============================================================================
> --- ofbiz/trunk/LICENSE (original)
> +++ ofbiz/trunk/LICENSE Tue Aug 19 10:36:01 2014
> @@ -28,7 +28,11 @@ framework/base/lib/jakarta-regexp-1.5.ja
>   framework/base/lib/jpim-0.1.jar
>   framework/base/lib/juel-impl-2.2.7.jar
>   framework/base/lib/juel-spi-2.2.7.jar
> -framework/base/lib/log4j-1.2.17.jar
> +framework/base/lib/log4j-1.2-api-2.0.1.jar
> +framework/base/lib/log4j-api-2.0.1.jar
> +framework/base/lib/log4j-core-2.0.1.jar
> +framework/base/lib/log4j-jcl-2.0.1.jar
> +framework/base/lib/log4j-slf4j-impl-2.0.1.jar
>   framework/base/lib/mx4j-3.0.1.jar
>   framework/base/lib/mx4j-remote-3.0.1.jar
>   framework/base/lib/nekohtml-1.9.16.jar
> @@ -1214,7 +1218,6 @@ MIT/X License:
>   framework/base/lib/icu4j-52_1.jar
>   framework/base/lib/jcl-over-slf4j-1.6.4.jar
>   framework/base/lib/slf4j-api-1.6.4.jar
> -framework/base/lib/slf4j-log4j12-1.6.4.jar
>   framework/images/webapp/images/jquery/*
>   framework/images/webapp/images/date/date.format-1.2.3*.js
>   =========================================================================
>
> Modified: ofbiz/trunk/framework/base/config/debug.properties
> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/config/debug.properties?rev=1618831&r1=1618830&r2=1618831&view=diff
> ==============================================================================
> --- ofbiz/trunk/framework/base/config/debug.properties (original)
> +++ ofbiz/trunk/framework/base/config/debug.properties Tue Aug 19 10:36:01 2014
> @@ -21,12 +21,6 @@
>   # OFBiz Debug Settings
>   ####
>
> -# Pack Exception Report Using Avalon Exception Util
> -pack.exception=true
> -
> -# Disable log4j config (used when other app servers handle the config)
> -disable.log4j.config=false
> -
>   # These top level switches are used before calling Log4J, or if Log4J is not used
>   print.verbose=false
>   print.timing=true
>
> Added: ofbiz/trunk/framework/base/config/log4j2.xml
> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/config/log4j2.xml?rev=1618831&view=auto
> ==============================================================================
> --- ofbiz/trunk/framework/base/config/log4j2.xml (added)
> +++ ofbiz/trunk/framework/base/config/log4j2.xml Tue Aug 19 10:36:01 2014
> @@ -0,0 +1,49 @@
> +<?xml version="1.0" encoding="UTF-8"?>
> +<Configuration monitorInterval="60">
> +    <Appenders>
> +        <Console name="stdout" target="SYSTEM_OUT">
> +            <PatternLayout pattern="%date{COMPACT} |%-20.20thread |%-20.20logger{1}|%level{length=1}| %message%n"/>
> +        </Console>
> +        <RollingFile name="ofbiz" fileName="runtime/logs/ofbiz.log"
> +                     filePattern="runtime/logs/ofbiz-%d{yyyy-MM-dd}-%i.log.zip">
> +            <PatternLayout pattern="%date{COMPACT} |%-20.20thread |%-20.20logger{1}|%level{length=1}| %message%n"/>
> +            <Policies>
> +                <TimeBasedTriggeringPolicy/>
> +                <SizeBasedTriggeringPolicy size="1 MB"/>
> +            </Policies>
> +            <DefaultRolloverStrategy max="4"/>
> +        </RollingFile>
> +        <RollingFile name="external" fileName="runtime/logs/external.log"
> +                     filePattern="runtime/logs/external-%d{yyyy-MM-dd}-%i.log.zip">
> +            <PatternLayout pattern="%date{COMPACT} |%-20.20thread |%-20.20logger{1}|%level{length=1}| %message%n"/>
> +            <Policies>
> +                <TimeBasedTriggeringPolicy/>
> +                <SizeBasedTriggeringPolicy size="1 MB"/>
> +            </Policies>
> +            <DefaultRolloverStrategy max="4"/>
> +        </RollingFile>
> +        <Async name="async">
> +            <AppenderRef ref="ofbiz"/>
> +            <AppenderRef ref="stdout"/>
> +        </Async>
> +    </Appenders>
> +    <Loggers>
> +        <logger name="org.ofbiz.base.converter.Converters" level="warn"/>
> +        <logger name="org.apache" level="warn" additivity="false">
> +            <appender-ref ref="external"/>
> +        </logger>
> +        <logger name="org.apache.tomcat" level="info" additivity="true">
> +            <appender-ref ref="external"/>
> +        </logger>
> +        <logger name="org.apache.catalina" level="info" additivity="true">
> +            <appender-ref ref="external"/>
> +        </logger>
> +        <logger name="freemarker" level="warn" additivity="false">
> +            <appender-ref ref="external"/>
> +        </logger>
> +
> +        <Root level="all">
> +            <AppenderRef ref="async"/>
> +        </Root>
> +    </Loggers>
> +</Configuration>
>
> Propchange: ofbiz/trunk/framework/base/config/log4j2.xml
> ------------------------------------------------------------------------------
>      svn:eol-style = native
>
> Propchange: ofbiz/trunk/framework/base/config/log4j2.xml
> ------------------------------------------------------------------------------
>      svn:keywords = Date Rev Author URL Id
>
> Propchange: ofbiz/trunk/framework/base/config/log4j2.xml
> ------------------------------------------------------------------------------
>      svn:mime-type = text/xml
>
> Added: ofbiz/trunk/framework/base/lib/log4j-1.2-api-2.0.1.jar
> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/lib/log4j-1.2-api-2.0.1.jar?rev=1618831&view=auto
> ==============================================================================
> Binary file - no diff available.
>
> Propchange: ofbiz/trunk/framework/base/lib/log4j-1.2-api-2.0.1.jar
> ------------------------------------------------------------------------------
>      svn:mime-type = application/octet-stream
>
> Added: ofbiz/trunk/framework/base/lib/log4j-api-2.0.1.jar
> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/lib/log4j-api-2.0.1.jar?rev=1618831&view=auto
> ==============================================================================
> Binary file - no diff available.
>
> Propchange: ofbiz/trunk/framework/base/lib/log4j-api-2.0.1.jar
> ------------------------------------------------------------------------------
>      svn:mime-type = application/octet-stream
>
> Added: ofbiz/trunk/framework/base/lib/log4j-core-2.0.1.jar
> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/lib/log4j-core-2.0.1.jar?rev=1618831&view=auto
> ==============================================================================
> Binary file - no diff available.
>
> Propchange: ofbiz/trunk/framework/base/lib/log4j-core-2.0.1.jar
> ------------------------------------------------------------------------------
>      svn:mime-type = application/octet-stream
>
> Added: ofbiz/trunk/framework/base/lib/log4j-jcl-2.0.1.jar
> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/lib/log4j-jcl-2.0.1.jar?rev=1618831&view=auto
> ==============================================================================
> Binary file - no diff available.
>
> Propchange: ofbiz/trunk/framework/base/lib/log4j-jcl-2.0.1.jar
> ------------------------------------------------------------------------------
>      svn:mime-type = application/octet-stream
>
> Added: ofbiz/trunk/framework/base/lib/log4j-slf4j-impl-2.0.1.jar
> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/lib/log4j-slf4j-impl-2.0.1.jar?rev=1618831&view=auto
> ==============================================================================
> Binary file - no diff available.
>
> Propchange: ofbiz/trunk/framework/base/lib/log4j-slf4j-impl-2.0.1.jar
> ------------------------------------------------------------------------------
>      svn:mime-type = application/octet-stream
>
> Modified: ofbiz/trunk/framework/base/src/org/ofbiz/base/container/ContainerLoader.java
> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/src/org/ofbiz/base/container/ContainerLoader.java?rev=1618831&r1=1618830&r2=1618831&view=diff
> ==============================================================================
> --- ofbiz/trunk/framework/base/src/org/ofbiz/base/container/ContainerLoader.java (original)
> +++ ofbiz/trunk/framework/base/src/org/ofbiz/base/container/ContainerLoader.java Tue Aug 19 10:36:01 2014
> @@ -27,8 +27,6 @@ import java.util.LinkedList;
>   import java.util.List;
>   import java.util.Map;
>
> -import org.apache.log4j.Appender;
> -import org.apache.log4j.Logger;
>   import org.ofbiz.base.component.ComponentConfig;
>   import org.ofbiz.base.start.Config;
>   import org.ofbiz.base.start.StartupException;
> @@ -270,12 +268,6 @@ public class ContainerLoader implements
>                       Debug.logInfo("Stopped container " + container.getName(), module);
>                   }
>               }
> -            @SuppressWarnings("unchecked")
> -            Enumeration<Appender> en = Logger.getRootLogger().getAllAppenders();
> -            while (en.hasMoreElements()) {
> -                Appender appender = en.nextElement();
> -                appender.close();
> -            }
>           }
>       }
>   }
>
> Modified: ofbiz/trunk/framework/base/src/org/ofbiz/base/util/Debug.java
> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/src/org/ofbiz/base/util/Debug.java?rev=1618831&r1=1618830&r2=1618831&view=diff
> ==============================================================================
> --- ofbiz/trunk/framework/base/src/org/ofbiz/base/util/Debug.java (original)
> +++ ofbiz/trunk/framework/base/src/org/ofbiz/base/util/Debug.java Tue Aug 19 10:36:01 2014
> @@ -18,23 +18,15 @@
>    *******************************************************************************/
>   package org.ofbiz.base.util;
>
> -import java.io.IOException;
>   import java.io.PrintStream;
>   import java.io.PrintWriter;
> -import java.util.Enumeration;
>   import java.util.Formatter;
>   import java.util.HashMap;
>   import java.util.Locale;
>   import java.util.Map;
>   import java.util.TimeZone;
>
> -import org.apache.avalon.util.exception.ExceptionHelper;
> -import org.apache.log4j.Appender;
> -import org.apache.log4j.Level;
> -import org.apache.log4j.Logger;
> -import org.apache.log4j.PatternLayout;
> -import org.apache.log4j.RollingFileAppender;
> -import org.apache.log4j.spi.LoggerRepository;
> +import org.apache.logging.log4j.*;
>   import org.ofbiz.base.conversion.ConversionException;
>   import org.ofbiz.base.conversion.DateTimeConverters.DateToString;
>
> @@ -57,22 +49,20 @@ public final class Debug {
>       public static final int WARNING = 5;
>       public static final int ERROR = 6;
>       public static final int FATAL = 7;
> -    public static final int NOTIFY = 8;
>
> -    public static final String[] levels = {"Always", "Verbose", "Timing", "Info", "Important", "Warning", "Error", "Fatal", "Notify"};
> -    public static final String[] levelProps = {"", "print.verbose", "print.timing", "print.info", "print.important", "print.warning", "print.error", "print.fatal", "print.notify"};
> -    public static final Level[] levelObjs = {Level.INFO, Level.DEBUG, Level.INFO, Level.INFO, Level.INFO, Level.WARN, Level.ERROR, Level.FATAL, NotifyLevel.NOTIFY};
> +    public static final String[] levels = {"Always", "Verbose", "Timing", "Info", "Important", "Warning", "Error", "Fatal"};
> +    public static final String[] levelProps = {"", "print.verbose", "print.timing", "print.info", "print.important", "print.warning", "print.error", "print.fatal"};
> +    public static final Level[] levelObjs = {Level.FATAL, Level.DEBUG, Level.TRACE, Level.INFO, Level.INFO, Level.WARN, Level.ERROR, Level.FATAL};
>
>       protected static Map<String, Integer> levelStringMap = new HashMap<String, Integer>();
>
>       protected static PrintStream printStream = System.out;
>       protected static PrintWriter printWriter = new PrintWriter(printStream);
>
> -    protected static boolean levelOnCache[] = new boolean[9];
> -    protected static boolean packException = true;
> +    protected static boolean levelOnCache[] = new boolean[8];
>       protected static final boolean useLevelOnCache = true;
>
> -    protected static Logger root = Logger.getRootLogger();
> +    protected static Logger root = LogManager.getRootLogger();
>
>       static {
>           levelStringMap.put("verbose", Debug.VERBOSE);
> @@ -83,32 +73,11 @@ public final class Debug {
>           levelStringMap.put("error", Debug.ERROR);
>           levelStringMap.put("fatal", Debug.FATAL);
>           levelStringMap.put("always", Debug.ALWAYS);
> -        levelStringMap.put("notify", Debug.NOTIFY);
> -
> -        // initialize Log4J
> -        if (!UtilProperties.propertyValueEqualsIgnoreCase("debug.properties", "disable.log4j.config", "true")) {
> -            org.apache.log4j.xml.DOMConfigurator.configure(UtilURL.fromResource("log4j.xml"));
> -        }
>
>           // initialize levelOnCache
> -        for (int i = 0; i < 9; i++) {
> +        for (int i = 0; i < levelOnCache.length; i++) {
>               levelOnCache[i] = (i == Debug.ALWAYS || UtilProperties.propertyValueEqualsIgnoreCase("debug.properties", levelProps[i], "true"));
>           }
> -
> -        if (SYS_DEBUG != null) {
> -            for (int x = 0; x < 8; x++) {
> -                levelOnCache[x] = true;
> -            }
> -            LoggerRepository repo = root.getLoggerRepository();
> -            Enumeration<Logger> en = UtilGenerics.cast(repo.getCurrentLoggers());
> -            while (en.hasMoreElements()) {
> -                Logger thisLogger = en.nextElement();
> -                thisLogger.setLevel(Level.DEBUG);
> -            }
> -        }
> -
> -        // configure exception packing
> -        packException = UtilProperties.propertyValueEqualsIgnoreCase("debug.properties", "pack.exception", "true");
>       }
>
>       public static PrintStream getPrintStream() {
> @@ -126,7 +95,7 @@ public final class Debug {
>
>       public static Logger getLogger(String module) {
>           if (UtilValidate.isNotEmpty(module)) {
> -            return Logger.getLogger(module);
> +            return LogManager.getLogger(module);
>           } else {
>               return root;
>           }
> @@ -138,16 +107,6 @@ public final class Debug {
>           return levelStringMap.get(levelName.toLowerCase());
>       }
>
> -    /** Gets an int representing the level number from a String representing the level name; if level not found defaults to Debug.INFO */
> -    public static int getLevelFromStringWithDefault(String levelName) {
> -        Integer levelInt = getLevelFromString(levelName);
> -        if (levelInt == null) {
> -            return Debug.INFO;
> -        } else {
> -            return levelInt;
> -        }
> -    }
> -
>       public static void log(int level, Throwable t, String msg, String module) {
>           log(level, t, msg, module, "org.ofbiz.base.util.Debug", emptyParams);
>       }
> @@ -161,86 +120,19 @@ public final class Debug {
>       }
>
>       public static void log(int level, Throwable t, String msg, String module, String callingClass, Object... params) {
> -        Logger logger = null;
> -        boolean offSetInLogConfig = false;
> -        boolean fatalSetInLogConfig = false;
> -        boolean errorSetInLogConfig = false;
> -        boolean warnSetInLogConfig = false;
> -        boolean infoSetInLogConfig = false;
> -        boolean traceSetInLogConfig = false;
> -        boolean debugSetInLogConfig = false;
> -        boolean allSetInLogConfig = false;
> -        boolean setInLogConfig = false;
> -
> -        if (useLog4J) {
> -            logger = getLogger(module);
> -
> -            // Class
> -            if (logger != null) {
> -                Level loggerLevel = logger.getLevel();
> -                offSetInLogConfig = Level.OFF.equals(loggerLevel);
> -                fatalSetInLogConfig = Level.FATAL.equals(loggerLevel);
> -                errorSetInLogConfig = Level.ERROR.equals(loggerLevel);
> -                warnSetInLogConfig = Level.WARN.equals(loggerLevel);
> -                infoSetInLogConfig = Level.INFO.equals(loggerLevel);
> -                traceSetInLogConfig = Level.TRACE.equals(loggerLevel);
> -                debugSetInLogConfig = Level.DEBUG.equals(loggerLevel);
> -                allSetInLogConfig = Level.ALL.equals(loggerLevel);
> -            }
> -            setInLogConfig = offSetInLogConfig || fatalSetInLogConfig || errorSetInLogConfig || warnSetInLogConfig || infoSetInLogConfig
> -                            ||  traceSetInLogConfig || debugSetInLogConfig || allSetInLogConfig;
> -            // Package
> -            // !setInLogConfig : for a Class logger, Class setting takes precedence on Package if both are used
> -            if (!noModuleModule.equals(module) && module != null && !module.isEmpty() && !setInLogConfig) {
> -                Logger packageLogger = getLogger(module.substring(0, module.lastIndexOf(".")));
> -                if (packageLogger != null) {
> -                    Level packageLoggerLevel = packageLogger.getLevel();
> -                    offSetInLogConfig |= Level.OFF.equals(packageLoggerLevel);
> -                    fatalSetInLogConfig |= Level.FATAL.equals(packageLoggerLevel);
> -                    errorSetInLogConfig |= Level.ERROR.equals(packageLoggerLevel);
> -                    warnSetInLogConfig |= Level.WARN.equals(packageLoggerLevel);
> -                    infoSetInLogConfig |= Level.INFO.equals(packageLoggerLevel);
> -                    traceSetInLogConfig |= Level.TRACE.equals(packageLoggerLevel);
> -                    debugSetInLogConfig |= Level.DEBUG.equals(packageLoggerLevel);
> -                    allSetInLogConfig |= Level.ALL.equals(packageLoggerLevel);
> -                }
> -            }
> -            setInLogConfig = offSetInLogConfig || fatalSetInLogConfig || errorSetInLogConfig || warnSetInLogConfig || infoSetInLogConfig
> -                            ||  traceSetInLogConfig || debugSetInLogConfig || allSetInLogConfig;
> -        }
> -
> -        if (isOn(level) || setInLogConfig) {
> +        if (isOn(level)) {
>               if (msg != null && params.length > 0) {
>                   StringBuilder sb = new StringBuilder();
>                   Formatter formatter = new Formatter(sb);
>                   formatter.format(msg, params);
>                   msg = sb.toString();
>               }
> -            // pack the exception
> -            if (packException && t != null) {
> -                msg = System.getProperty("line.separator") + ExceptionHelper.packException(msg, t, true);
> -                t = null;
> -            }
>
>               // log
>               if (useLog4J) {
> -                if (SYS_DEBUG != null) {
> -                    logger.setLevel(Level.DEBUG);
> -                }
> -                if (offSetInLogConfig) {
> -                    // Not printing anything
> -                } else if (fatalSetInLogConfig && Level.FATAL.equals(levelObjs[level])
> -                        || errorSetInLogConfig && Level.ERROR.equals(levelObjs[level])
> -                        || warnSetInLogConfig && Level.WARN.equals(levelObjs[level])
> -                        || infoSetInLogConfig && Level.INFO.equals(levelObjs[level])
> -                        || debugSetInLogConfig && Level.DEBUG.equals(levelObjs[level])
> -                        || traceSetInLogConfig && Level.DEBUG.equals(levelObjs[level])) {
> -                    logger.log(callingClass, levelObjs[level], msg, t);
> -                } else if (allSetInLogConfig) {
> -                    logger.log(callingClass, Level.INFO, msg, t);
> -                } else {
> -                    logger.log(callingClass, levelObjs[level], msg, t);
> -                }
> +                Logger logger = getLogger(module);
> +                //callingClass
> +                logger.log(levelObjs[level], msg, t);
>               } else {
>                   StringBuilder prefixBuf = new StringBuilder();
>
> @@ -276,7 +168,7 @@ public final class Debug {
>           if (useLevelOnCache) {
>               return levelOnCache[level];
>           } else {
> -            return (level == Debug.ALWAYS || UtilProperties.propertyValueEqualsIgnoreCase("debug", levelProps[level], "true"));
> +            return (level == Debug.ALWAYS || UtilProperties.propertyValueEqualsIgnoreCase("debug.properties", levelProps[level], "true"));
>           }
>       }
>
> @@ -481,26 +373,6 @@ public final class Debug {
>           log(Debug.FATAL, t, msg, module, params);
>       }
>
> -    public static void logNotify(String msg, String module) {
> -        log(Debug.NOTIFY, null, msg, module, emptyParams);
> -    }
> -
> -    public static void logNotify(String msg, String module, Object... params) {
> -        log(Debug.NOTIFY, null, msg, module, params);
> -    }
> -
> -    public static void logNotify(Throwable t, String module) {
> -        log(Debug.NOTIFY, t, null, module, emptyParams);
> -    }
> -
> -    public static void logNotify(Throwable t, String msg, String module) {
> -        log(Debug.NOTIFY, t, msg, module, emptyParams);
> -    }
> -
> -    public static void logNotify(Throwable t, String msg, String module, Object... params) {
> -        log(Debug.NOTIFY, t, msg, module, params);
> -    }
> -
>       public static void set(int level, boolean on) {
>           if (!useLevelOnCache)
>               return;
> @@ -512,72 +384,4 @@ public final class Debug {
>               return true;
>           return levelOnCache[level];
>       }
> -
> -    public static synchronized Appender getNewFileAppender(String name, String logFile, long maxSize, int backupIdx, String pattern) {
> -        if (pattern == null) {
> -            pattern = "%-5r[%24F:%-3L:%-5p]%x %m%n";
> -        }
> -
> -        PatternLayout layout = new PatternLayout(pattern);
> -        layout.activateOptions();
> -
> -        RollingFileAppender newAppender = null;
> -        try {
> -            newAppender = new RollingFileAppender(layout, logFile, true);
> -        } catch (IOException e) {
> -            logFatal(e, Debug.class.getName());
> -        }
> -
> -        if (newAppender != null) {
> -            if (backupIdx > 0) {
> -                newAppender.setMaxBackupIndex(backupIdx);
> -            }
> -            if (maxSize > 0) {
> -                newAppender.setMaximumFileSize(maxSize);
> -            }
> -            newAppender.setThreshold(Level.DEBUG);
> -            newAppender.activateOptions();
> -            newAppender.setName(name);
> -        }
> -
> -        return newAppender;
> -    }
> -
> -    public static boolean registerFileAppender(String module, String name, String logFile, long maxSize, int backupIdx, String pattern) {
> -        Logger logger = Logger.getLogger(module);
> -        boolean found = false;
> -
> -        Appender foundAppender = logger.getAppender(name);
> -        if (foundAppender == null) {
> -            Enumeration<Logger> currentLoggerEnum = UtilGenerics.cast(Logger.getRootLogger().getLoggerRepository().getCurrentLoggers());
> -            while (currentLoggerEnum.hasMoreElements() && foundAppender == null) {
> -                Logger log = currentLoggerEnum.nextElement();
> -                foundAppender = log.getAppender(name);
> -            }
> -        } else {
> -            return true;
> -        }
> -
> -        if (foundAppender == null) {
> -            if (logFile != null) {
> -                foundAppender = getNewFileAppender(name, logFile, maxSize, backupIdx, pattern);
> -                if (foundAppender != null) {
> -                    found = true;
> -                }
> -            }
> -        } else {
> -            found = true;
> -        }
> -
> -        logger.addAppender(foundAppender);
> -        return found;
> -    }
> -
> -    public static boolean registerFileAppender(String module, String name, String logFile) {
> -        return registerFileAppender(module, name, logFile, 0, 10, null);
> -    }
> -
> -    public static boolean registerFileAppender(String module, String name) {
> -        return registerFileAppender(module, name, null, -1, -1, null);
> -    }
>   }
>
> Modified: ofbiz/trunk/framework/common/servicedef/services.xml
> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/common/servicedef/services.xml?rev=1618831&r1=1618830&r2=1618831&view=diff
> ==============================================================================
> --- ofbiz/trunk/framework/common/servicedef/services.xml (original)
> +++ ofbiz/trunk/framework/common/servicedef/services.xml Tue Aug 19 10:36:01 2014
> @@ -86,13 +86,6 @@ under the License.
>           <attribute name="timing" type="String" mode="IN" optional="true"/>
>           <attribute name="verbose" type="String" mode="IN" optional="true"/>
>       </service>
> -    <service name="addOrUpdateLogger" engine="java"
> -             location="org.ofbiz.common.CommonServices" invoke="addOrUpdateLogger" auth="true">
> -        <description>Add/Update logger in logging system</description>
> -        <attribute name="name" type="String" mode="IN" optional="false"/>
> -        <attribute name="level" type="String" mode="IN" optional="false"/>
> -        <attribute name="additivity" type="String" mode="IN" optional="true"/>
> -    </service>
>
>       <service name="displayXaDebugInfo" engine="java"
>               location="org.ofbiz.common.CommonServices" invoke="displayXaDebugInfo" auth="true">
>
> Modified: ofbiz/trunk/framework/common/src/org/ofbiz/common/CommonServices.java
> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/common/src/org/ofbiz/common/CommonServices.java?rev=1618831&r1=1618830&r2=1618831&view=diff
> ==============================================================================
> --- ofbiz/trunk/framework/common/src/org/ofbiz/common/CommonServices.java (original)
> +++ ofbiz/trunk/framework/common/src/org/ofbiz/common/CommonServices.java Tue Aug 19 10:36:01 2014
> @@ -44,8 +44,6 @@ import javax.mail.internet.MimeMessage;
>   import javolution.util.FastList;
>   import javolution.util.FastMap;
>
> -import org.apache.log4j.Level;
> -import org.apache.log4j.Logger;
>   import org.ofbiz.base.metrics.Metrics;
>   import org.ofbiz.base.metrics.MetricsFactory;
>   import org.ofbiz.base.util.Debug;
> @@ -220,23 +218,6 @@ public class CommonServices {
>           return ServiceUtil.returnSuccess();
>       }
>
> -    public static Map<String, Object> addOrUpdateLogger(DispatchContext dctc, Map<String, ?> context) {
> -        String name = (String) context.get("name");
> -        String level = (String) context.get("level");
> -        boolean additivity = "Y".equalsIgnoreCase((String) context.get("additivity"));
> -
> -        Logger logger = null;
> -        if ("root".equals(name)) {
> -            logger = Logger.getRootLogger();
> -        } else {
> -            logger = Logger.getLogger(name);
> -        }
> -        logger.setLevel(Level.toLevel(level));
> -        logger.setAdditivity(additivity);
> -
> -        return ServiceUtil.returnSuccess();
> -    }
> -
>       public static Map<String, Object> forceGc(DispatchContext dctx, Map<String, ?> context) {
>           System.gc();
>           return ServiceUtil.returnSuccess();
>
> Modified: ofbiz/trunk/framework/webtools/webapp/webtools/WEB-INF/actions/log/LogConfiguration.groovy
> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/webtools/webapp/webtools/WEB-INF/actions/log/LogConfiguration.groovy?rev=1618831&r1=1618830&r2=1618831&view=diff
> ==============================================================================
> --- ofbiz/trunk/framework/webtools/webapp/webtools/WEB-INF/actions/log/LogConfiguration.groovy (original)
> +++ ofbiz/trunk/framework/webtools/webapp/webtools/WEB-INF/actions/log/LogConfiguration.groovy Tue Aug 19 10:36:01 2014
> @@ -16,39 +16,9 @@
>    * specific language governing permissions and limitations
>    * under the License.
>    */
> -import java.util.Collections;
> -import java.util.Comparator;
> -import java.util.Enumeration;
> -import java.util.List;
> -import java.util.Map;
> -
> -import org.apache.log4j.Logger;
> -import org.apache.log4j.spi.LoggerRepository;
>
>   import org.ofbiz.base.util.Debug;
> -import org.ofbiz.base.util.UtilMisc;
> -import org.ofbiz.entity.util.EntityUtil;
> -
> -
> -rootLogger = Logger.getRootLogger();
> -loggerRepository = rootLogger.getLoggerRepository();
> -
> -loggerList = [];
> -for (Enumeration enumeration = loggerRepository.getCurrentLoggers(); enumeration.hasMoreElements();) {
> -    logger = enumeration.nextElement();
> -
> -    if (logger.getLevel() != null) {
> -        loggerMap = [name : logger.getName(), level : logger.getLevel(), additivity : logger.getAdditivity() ? "Y" : "N", logger : logger];
> -        loggerList.add(loggerMap);
> -    }
> -}
> -
> -Collections.sort(loggerList, [compare: {l1, l2 -> l1.name.compareTo(l2.name)}] as Comparator);
> -
> -loggerList.add(0, [name : rootLogger.getName(), level : rootLogger.getLevel(), additivity : rootLogger.getAdditivity() ? "Y" : "N", logger : rootLogger]);
> -context.loggerList = loggerList;
>
> -context.defaultLogger = [name : "org.ofbiz.", level : "INFO", additivity : "Y"];
>   context.activeDebugLevel = [fatal : Debug.fatalOn() ? "Y" : "N",
>                               error : Debug.errorOn() ? "Y" : "N",
>                               warning : Debug.warningOn() ? "Y" : "N",
>
> Modified: ofbiz/trunk/framework/webtools/webapp/webtools/WEB-INF/controller.xml
> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/webtools/webapp/webtools/WEB-INF/controller.xml?rev=1618831&r1=1618830&r2=1618831&view=diff
> ==============================================================================
> --- ofbiz/trunk/framework/webtools/webapp/webtools/WEB-INF/controller.xml (original)
> +++ ofbiz/trunk/framework/webtools/webapp/webtools/WEB-INF/controller.xml Tue Aug 19 10:36:01 2014
> @@ -244,16 +244,6 @@ under the License.
>           <security https="true" auth="true"/>
>           <response name="success" type="view" value="LogConfiguration"/>
>       </request-map>
> -    <request-map uri="AddLogger">
> -        <security https="true" auth="true"/>
> -        <event type="service" invoke="addOrUpdateLogger"/>
> -        <response name="success" type="view" value="LogConfiguration"/>
> -    </request-map>
> -    <request-map uri="UpdateLogger">
> -        <security https="true" auth="true"/>
> -        <event type="service-multi" invoke="addOrUpdateLogger"/>
> -        <response name="success" type="view" value="LogConfiguration"/>
> -    </request-map>
>       <request-map uri="AdjustDebugLevels">
>           <security https="true" auth="true"/>
>           <event type="service" invoke="adjustDebugLevels"/>
>
> Modified: ofbiz/trunk/framework/webtools/widget/LogForms.xml
> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/webtools/widget/LogForms.xml?rev=1618831&r1=1618830&r2=1618831&view=diff
> ==============================================================================
> --- ofbiz/trunk/framework/webtools/widget/LogForms.xml (original)
> +++ ofbiz/trunk/framework/webtools/widget/LogForms.xml Tue Aug 19 10:36:01 2014
> @@ -32,43 +32,4 @@ under the License.
>       <field name="submit" title="${uiLabelMap.CommonUpdate}"><submit/></field>
>     </form>
>
> -  <form name="AddLogger" type="single" default-map-name="defaultLogger" target="AddLogger"
> -    header-row-style="header-row" default-table-style="basic-table">
> -    <field name="name" title="${uiLabelMap.WebtoolsLoggerName}"><text size="50"/></field>
> -    <field name="level" title="${uiLabelMap.WebtoolsLoggerLevel}">
> -        <drop-down>
> -          <option key="OFF"/>
> -          <option key="FATAL"/>
> -          <option key="ERROR"/>
> -          <option key="WARN"/>
> -          <option key="INFO"/>
> -          <option key="TRACE"/>
> -          <option key="DEBUG"/>
> -          <option key="ALL"/>
> -        </drop-down>
> -    </field>
> -    <field name="additivity" title="${uiLabelMap.WebtoolsLoggerAdditivity}"><check/></field>
> -    <field name="submit" title="${uiLabelMap.CommonAdd}"><submit/></field>
> -  </form>
> -
> -  <form name="LoggerList" type="multi" target="UpdateLogger" list-name="loggerList" separate-columns="true"
> -    paginate="false" odd-row-style="alternate-row" default-table-style="basic-table hover-bar">
> -    <field name="name" title="${uiLabelMap.WebtoolsLoggerName}"><display/></field>
> -    <field name="level" title="${uiLabelMap.WebtoolsLoggerLevel}">
> -        <drop-down>
> -          <option key="OFF"/>
> -          <option key="FATAL"/>
> -          <option key="ERROR"/>
> -          <option key="WARN"/>
> -          <option key="INFO"/>
> -          <option key="TRACE"/>
> -          <option key="DEBUG"/>
> -          <option key="ALL"/>
> -        </drop-down>
> -    </field>
> -    <field name="additivity" title="${uiLabelMap.WebtoolsLoggerAdditivity}">
> -      <check/>
> -    </field>
> -    <field name="submit" title="${uiLabelMap.CommonUpdate}"><submit/></field>
> -  </form>
>   </forms>
>
> Modified: ofbiz/trunk/framework/webtools/widget/LogScreens.xml
> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/webtools/widget/LogScreens.xml?rev=1618831&r1=1618830&r2=1618831&view=diff
> ==============================================================================
> --- ofbiz/trunk/framework/webtools/widget/LogScreens.xml (original)
> +++ ofbiz/trunk/framework/webtools/widget/LogScreens.xml Tue Aug 19 10:36:01 2014
> @@ -87,12 +87,6 @@ under the License.
>                            <screenlet title="${uiLabelMap.WebtoolsDebuggingLevelFormDescription}">
>                                <include-form name="LevelSwitch" location="component://webtools/widget/LogForms.xml"/>
>                            </screenlet>
> -                         <screenlet title="${uiLabelMap.WebtoolsAddLoggerFormDescription}">
> -                             <include-form name="AddLogger" location="component://webtools/widget/LogForms.xml"/>
> -                         </screenlet>
> -                         <screenlet title="${uiLabelMap.WebtoolsLoggerListFormDescription}">
> -                             <include-form name="LoggerList" location="component://webtools/widget/LogForms.xml"/>
> -                         </screenlet>
>                        </decorator-section>
>                    </decorator-screen>
>                  </widgets>
>
> Modified: ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/PosTransaction.java
> URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/PosTransaction.java?rev=1618831&r1=1618830&r2=1618831&view=diff
> ==============================================================================
> --- ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/PosTransaction.java (original)
> +++ ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/PosTransaction.java Tue Aug 19 10:36:01 2014
> @@ -36,7 +36,6 @@ import net.xoetrope.xui.helper.SwingWork
>   import org.ofbiz.accounting.payment.PaymentGatewayServices;
>   import org.ofbiz.base.util.Debug;
>   import org.ofbiz.base.util.GeneralException;
> -import org.ofbiz.base.util.Log4jLoggerWriter;
>   import org.ofbiz.base.util.UtilDateTime;
>   import org.ofbiz.base.util.UtilFormatOut;
>   import org.ofbiz.base.util.UtilGenerics;
> @@ -96,7 +95,6 @@ public class PosTransaction implements S
>       public static final int INTERNAL_PAYMENT = 1;
>       public static final int EXTERNAL_PAYMENT = 2;
>
> -    private static PrintWriter defaultPrintWriter = new Log4jLoggerWriter(Debug.getLogger(module));
>       private static PosTransaction currentTx = null;
>       private static LifoSet<PosTransaction> savedTx = new LifoSet<PosTransaction>();
>
> @@ -125,7 +123,7 @@ public class PosTransaction implements S
>           this.session = session;
>           this.terminalId = session.getId();
>           this.partyId = "_NA_";
> -        this.trace = defaultPrintWriter;
> +        //this.trace = defaultPrintWriter;
>
>           this.productStoreId = (String) session.getAttribute("productStoreId");
>           this.facilityId = (String) session.getAttribute("facilityId");
> @@ -1195,6 +1193,7 @@ public class PosTransaction implements S
>       }
>
>       private void trace(String s1, String s2, Throwable t) {
> +        /*
>           if (trace != null) {
>               String msg = s1;
>               if (UtilValidate.isNotEmpty(s2)) {
> @@ -1208,6 +1207,7 @@ public class PosTransaction implements S
>               trace.println("[POS @ " + terminalId + " TX:" + transactionId + "] - " + msg);
>               trace.flush();
>           }
> +        */
>       }
>
>       public static synchronized PosTransaction getCurrentTx(XuiSession session) {
>
>