From 39be274a446bc48400fb0f4ff8ec74b54883f7a6 Mon Sep 17 00:00:00 2001
From: Nicolas Capponi <nicolas.capponi@forgerock.com>
Date: Wed, 12 Feb 2014 10:55:00 +0000
Subject: [PATCH] Checkpoint commit for OPENDJ-1288 :    Migrate I18n and logging support to i18n framework and SLF4J

---
 opendj3-server-dev/src/server/org/opends/server/loggers/JDKLogging.java                    |   92 +++++++++++++++
 opendj3-server-dev/src/quicksetup/org/opends/quicksetup/QuickSetupLog.java                 |    4 
 opendj3-server-dev/src/server/org/opends/server/tools/LDAPCompare.java                     |   15 --
 opendj3-server-dev/src/server/org/opends/server/tools/StopDS.java                          |    3 
 opendj3-server-dev/src/server/org/opends/server/tools/BackUpDB.java                        |    2 
 opendj3-server-dev/src/server/org/opends/server/tools/EncodePassword.java                  |   28 ++--
 opendj3-server-dev/src/server/org/opends/server/tools/RebuildIndex.java                    |    2 
 opendj3-server-dev/src/server/org/opends/server/tools/LDIFModify.java                      |    3 
 opendj3-server-dev/src/server/org/opends/server/tools/RestoreDB.java                       |    2 
 opendj3-server-dev/src/server/org/opends/server/tools/LDIFDiff.java                        |    3 
 opendj3-server-dev/src/server/org/opends/server/tools/StopWindowsService.java              |    4 
 opendj3-server-dev/src/server/org/opends/server/tools/ManageTasks.java                     |    8 -
 opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/util/ControlPanelLog.java |   15 +-
 opendj3-server-dev/src/server/org/opends/server/tools/DBTest.java                          |   16 +-
 opendj3-server-dev/src/server/org/opends/server/tools/ManageAccount.java                   |    6 +
 opendj3-server-dev/src/server/org/opends/server/tools/ConfigureDS.java                     |    6 
 opendj3-server-dev/src/server/org/opends/server/tools/WaitForFileDelete.java               |    2 
 opendj3-server-dev/src/server/org/opends/server/tools/dsconfig/DSConfig.java               |    3 
 opendj3-server-dev/src/server/org/opends/server/tools/JavaPropertiesTool.java              |    3 
 opendj3-server-dev/src/server/org/opends/server/tools/LDIFSearch.java                      |    2 
 opendj3-server-dev/src/server/org/opends/server/tools/ConfigureWindowsService.java         |    3 
 opendj3-server-dev/src/server/org/opends/server/tools/StartWindowsService.java             |    4 
 opendj3-server-dev/src/server/org/opends/server/tools/ListBackends.java                    |    5 
 opendj3-server-dev/src/server/org/opends/server/loggers/LoggingCategoryNames.java          |    2 
 opendj3-server-dev/src/server/org/opends/server/tools/CreateRCScript.java                  |    3 
 opendj3-server-dev/src/server/org/opends/server/tools/ImportLDIF.java                      |    2 
 opendj3-server-dev/src/server/org/opends/server/tools/LDAPDelete.java                      |    1 
 opendj3-server-dev/src/server/org/opends/server/loggers/JDKLoggingFormater.java            |    2 
 opendj3-server-dev/src/server/org/opends/server/tools/VerifyIndex.java                     |   94 ++++++---------
 opendj3-server-dev/src/server/org/opends/server/tools/LDAPConnection.java                  |   17 +-
 opendj3-server-dev/src/server/org/opends/server/tools/ExportLDIF.java                      |    5 
 31 files changed, 223 insertions(+), 134 deletions(-)

diff --git a/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/util/ControlPanelLog.java b/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/util/ControlPanelLog.java
index b908582..1a879c7 100644
--- a/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/util/ControlPanelLog.java
+++ b/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/util/ControlPanelLog.java
@@ -33,7 +33,7 @@
 import java.util.Date;
 import java.text.DateFormat;
 
-import org.opends.server.loggers.JdkLoggingFormater;
+import org.opends.server.loggers.JDKLogging;
 
 /**
  * Utilities for setting up Control Panel application log.
@@ -57,18 +57,21 @@
     {
       logFile = file;
       fileHandler = new FileHandler(logFile.getCanonicalPath());
-      fileHandler.setFormatter(new JdkLoggingFormater());
-      for (String packageName : packages)
+      fileHandler.setFormatter(JDKLogging.getFormatter());
+      boolean initialLogDone = false;
+      for (String root : JDKLogging.getOpendDJLoggingRoots())
       {
-        Logger logger = Logger.getLogger(packageName);
+        Logger logger = Logger.getLogger(root);
         if (disableLoggingToConsole())
         {
           logger.setUseParentHandlers(false); // disable logging to console
         }
         logger.addHandler(fileHandler);
+        if (!initialLogDone) {
+          logger.info(getInitialLogRecord());
+          initialLogDone = true;
+        }
       }
-      Logger logger = Logger.getLogger(packages[0]);
-      logger.info(getInitialLogRecord());
     }
   }
 
diff --git a/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/QuickSetupLog.java b/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/QuickSetupLog.java
index 1ae8106..08718a4 100644
--- a/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/QuickSetupLog.java
+++ b/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/QuickSetupLog.java
@@ -34,7 +34,7 @@
 import java.util.Date;
 import java.text.DateFormat;
 
-import org.opends.server.loggers.JdkLoggingFormater;
+import org.opends.server.loggers.JDKLogging;
 
 /**
  * Utilities for setting up QuickSetup application log.
@@ -54,7 +54,7 @@
     if (!isInitialized()) {
       logFile = file;
       fileHandler = new FileHandler(logFile.getCanonicalPath());
-      fileHandler.setFormatter(new JdkLoggingFormater());
+      fileHandler.setFormatter(JDKLogging.getFormatter());
       Logger logger = Logger.getLogger("org.opends");
       logger.addHandler(fileHandler);
       disableConsoleLogging();
diff --git a/opendj3-server-dev/src/server/org/opends/server/loggers/JDKLogging.java b/opendj3-server-dev/src/server/org/opends/server/loggers/JDKLogging.java
new file mode 100644
index 0000000..f9e8535
--- /dev/null
+++ b/opendj3-server-dev/src/server/org/opends/server/loggers/JDKLogging.java
@@ -0,0 +1,92 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License").  You may not use this file except in compliance
+ * with the License.
+ *
+ * You can obtain a copy of the license at legal-notices/CDDLv1_0.txt
+ * or http://forgerock.org/license/CDDLv1.0.html.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at legal-notices/CDDLv1_0.txt.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information:
+ *      Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ *
+ *
+ *      Copyright 2014 ForgeRock AS.
+ */
+package org.opends.server.loggers;
+
+import java.util.logging.ConsoleHandler;
+import java.util.logging.Formatter;
+import java.util.logging.Handler;
+import java.util.logging.Level;
+import java.util.logging.LogManager;
+import java.util.logging.Logger;
+
+/**
+ * Utility class for java.util.logging support.
+ */
+public class JDKLogging
+{
+  /** Root packages that contains all OpenDJ related classes. */
+  private static final String[] LOGGING_ROOTS = new String[] { "org.opends", "org.forgerock.opendj"};
+
+  /**
+   * Disable java.util.logging.
+   */
+  public static void disableLogging()
+  {
+    LogManager.getLogManager().reset();
+    Logger.getLogger("").setLevel(Level.OFF);
+  }
+
+  /**
+   * Enable JDK logging to stderr at provided level for OpenDJ classes.
+   *
+   * @param level
+   *          The level to log.
+   */
+  public static void enableConsoleLoggingForOpenDJ(Level level)
+  {
+    Handler handler = new ConsoleHandler();
+    handler.setFormatter(getFormatter());
+    handler.setLevel(level);
+    for (String loggingRoot : LOGGING_ROOTS)
+    {
+      Logger logger = Logger.getLogger(loggingRoot);
+      logger.setLevel(level);
+      logger.addHandler(handler);
+    }
+  }
+
+  /**
+   * Get a formatter.
+   *
+   * @return a formatter for loggers
+   */
+  public static Formatter getFormatter()
+  {
+    return new JDKLoggingFormater();
+  }
+
+  /**
+   * Returns the packages to be used as root for logging.
+   * <p>
+   * This package covers all OpenDJ classes.
+   *
+   * @return the root packages to log
+   */
+  public static String[] getOpendDJLoggingRoots() {
+    return LOGGING_ROOTS;
+  }
+
+}
diff --git a/opendj3-server-dev/src/server/org/opends/server/loggers/JdkLoggingFormater.java b/opendj3-server-dev/src/server/org/opends/server/loggers/JDKLoggingFormater.java
similarity index 97%
rename from opendj3-server-dev/src/server/org/opends/server/loggers/JdkLoggingFormater.java
rename to opendj3-server-dev/src/server/org/opends/server/loggers/JDKLoggingFormater.java
index 00b1293..5fb8741 100644
--- a/opendj3-server-dev/src/server/org/opends/server/loggers/JdkLoggingFormater.java
+++ b/opendj3-server-dev/src/server/org/opends/server/loggers/JDKLoggingFormater.java
@@ -40,7 +40,7 @@
  * "java.util.logging.SimpleFormatter.format" parameter to the JVM. Use the
  * parameter instead of this class when JDK6 is not supported any more.
  */
-public class JdkLoggingFormater extends Formatter
+public final class JDKLoggingFormater extends Formatter
 {
 
   /** Use one formatter per thread as DateFormat is not thread-safe. */
diff --git a/opendj3-server-dev/src/server/org/opends/server/loggers/LoggingCategoryNames.java b/opendj3-server-dev/src/server/org/opends/server/loggers/LoggingCategoryNames.java
index b0b08f1..27f2e08 100644
--- a/opendj3-server-dev/src/server/org/opends/server/loggers/LoggingCategoryNames.java
+++ b/opendj3-server-dev/src/server/org/opends/server/loggers/LoggingCategoryNames.java
@@ -66,7 +66,7 @@
     // The category used for messages associated with
     // connection and protocol handling (e.g., ASN.1 and LDAP).
     NAMES.put("org.opends.server.protocol", "PROTOCOL");
-    NAMES.put("org.forgerock.opendj.ldap.io", "PROTOCOL");
+    NAMES.put("org.forgerock.opendj.io", "PROTOCOL");
 
     // The category used for messages associated with configuration handling.
     NAMES.put("org.opends.server.config", "CONFIG");
diff --git a/opendj3-server-dev/src/server/org/opends/server/tools/BackUpDB.java b/opendj3-server-dev/src/server/org/opends/server/tools/BackUpDB.java
index b7cd715..3b175df 100644
--- a/opendj3-server-dev/src/server/org/opends/server/tools/BackUpDB.java
+++ b/opendj3-server-dev/src/server/org/opends/server/tools/BackUpDB.java
@@ -52,6 +52,7 @@
 import org.opends.server.loggers.DebugLogger;
 import org.opends.server.loggers.ErrorLogPublisher;
 import org.opends.server.loggers.ErrorLogger;
+import org.opends.server.loggers.JDKLogging;
 import org.opends.server.loggers.TextDebugLogPublisher;
 import org.opends.server.loggers.TextErrorLogPublisher;
 import org.opends.server.loggers.TextWriter;
@@ -157,6 +158,7 @@
   {
     PrintStream out = NullOutputStream.wrapOrNullStream(outStream);
     PrintStream err = NullOutputStream.wrapOrNullStream(errStream);
+    JDKLogging.disableLogging();
 
     // Create the command-line argument parser for use with this program.
     LDAPConnectionArgumentParser argParser =
diff --git a/opendj3-server-dev/src/server/org/opends/server/tools/ConfigureDS.java b/opendj3-server-dev/src/server/org/opends/server/tools/ConfigureDS.java
index 10fd203..d6e178f 100644
--- a/opendj3-server-dev/src/server/org/opends/server/tools/ConfigureDS.java
+++ b/opendj3-server-dev/src/server/org/opends/server/tools/ConfigureDS.java
@@ -54,6 +54,7 @@
 import org.opends.server.core.LockFileManager;
 import org.opends.server.extensions.ConfigFileHandler;
 import org.opends.server.extensions.SaltedSHA512PasswordStorageScheme;
+import org.opends.server.loggers.JDKLogging;
 import org.opends.server.protocols.ldap.LDAPResultCode;
 import org.opends.server.types.DirectoryException;
 import org.opends.server.types.DN;
@@ -64,6 +65,7 @@
 import org.opends.server.types.NullOutputStream;
 import org.opends.server.util.LDIFReader;
 import org.opends.server.util.SetupUtils;
+
 import com.forgerock.opendj.cli.ArgumentException;
 import com.forgerock.opendj.cli.ArgumentParser;
 import com.forgerock.opendj.cli.BooleanArgument;
@@ -171,8 +173,6 @@
     }
   }
 
-
-
   /**
    * Parses the provided command-line arguments and makes the appropriate
    * changes to the Directory Server configuration.
@@ -209,6 +209,8 @@
     PrintStream out = NullOutputStream.wrapOrNullStream(outStream);
     PrintStream err = NullOutputStream.wrapOrNullStream(errStream);
 
+    JDKLogging.disableLogging();
+
     LocalizableMessage toolDescription = INFO_CONFIGDS_TOOL_DESCRIPTION.get();
     ArgumentParser argParser = new ArgumentParser(CLASS_NAME, toolDescription,
                                                   false);
diff --git a/opendj3-server-dev/src/server/org/opends/server/tools/ConfigureWindowsService.java b/opendj3-server-dev/src/server/org/opends/server/tools/ConfigureWindowsService.java
index 24439fa..98f7fd5 100644
--- a/opendj3-server-dev/src/server/org/opends/server/tools/ConfigureWindowsService.java
+++ b/opendj3-server-dev/src/server/org/opends/server/tools/ConfigureWindowsService.java
@@ -38,9 +38,11 @@
 
 import org.opends.quicksetup.util.Utils;
 import org.opends.server.core.DirectoryServer;
+import org.opends.server.loggers.JDKLogging;
 import org.opends.server.types.NullOutputStream;
 import org.opends.server.util.DynamicConstants;
 import org.opends.server.util.SetupUtils;
+
 import com.forgerock.opendj.cli.ArgumentException;
 import com.forgerock.opendj.cli.ArgumentParser;
 import com.forgerock.opendj.cli.BooleanArgument;
@@ -197,6 +199,7 @@
     int returnValue = 0;
     PrintStream out = NullOutputStream.wrapOrNullStream(outStream);
     PrintStream err = NullOutputStream.wrapOrNullStream(errStream);
+    JDKLogging.disableLogging();
 
 //  Define all the arguments that may be used with this program.
     LocalizableMessage toolDescription =
diff --git a/opendj3-server-dev/src/server/org/opends/server/tools/CreateRCScript.java b/opendj3-server-dev/src/server/org/opends/server/tools/CreateRCScript.java
index 99dfc3f..679d5d2 100644
--- a/opendj3-server-dev/src/server/org/opends/server/tools/CreateRCScript.java
+++ b/opendj3-server-dev/src/server/org/opends/server/tools/CreateRCScript.java
@@ -35,11 +35,13 @@
 
 import org.forgerock.i18n.LocalizableMessage;
 import org.opends.server.core.DirectoryServer;
+import org.opends.server.loggers.JDKLogging;
 import org.opends.server.types.FilePermission;
 import org.opends.server.types.NullOutputStream;
 import org.opends.server.types.OperatingSystem;
 import org.opends.server.util.EmbeddedUtils;
 import org.opends.server.util.SetupUtils;
+
 import com.forgerock.opendj.cli.ArgumentParser;
 import com.forgerock.opendj.cli.ArgumentException;
 import com.forgerock.opendj.cli.BooleanArgument;
@@ -97,6 +99,7 @@
                          OutputStream errStream)
   {
     PrintStream err = NullOutputStream.wrapOrNullStream(errStream);
+    JDKLogging.disableLogging();
 
     EmbeddedUtils.initializeForClientUse();
 
diff --git a/opendj3-server-dev/src/server/org/opends/server/tools/DBTest.java b/opendj3-server-dev/src/server/org/opends/server/tools/DBTest.java
index 8ac7e71..a0ae6b7 100644
--- a/opendj3-server-dev/src/server/org/opends/server/tools/DBTest.java
+++ b/opendj3-server-dev/src/server/org/opends/server/tools/DBTest.java
@@ -41,12 +41,13 @@
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.core.LockFileManager;
 import org.opends.server.extensions.ConfigFileHandler;
-import org.forgerock.i18n.slf4j.LocalizedLogger;
+import org.opends.server.loggers.JDKLogging;
 import org.opends.server.types.*;
 import org.forgerock.opendj.ldap.ByteString;
 import org.forgerock.opendj.ldap.ByteStringBuilder;
 import org.opends.server.util.BuildVersion;
 import org.opends.server.util.StaticUtils;
+
 import com.forgerock.opendj.cli.Argument;
 import com.forgerock.opendj.cli.ArgumentException;
 import com.forgerock.opendj.cli.BooleanArgument;
@@ -54,6 +55,7 @@
 import com.forgerock.opendj.cli.StringArgument;
 import com.forgerock.opendj.cli.SubCommand;
 import com.forgerock.opendj.cli.SubCommandArgumentParser;
+
 import org.opends.server.util.table.TableBuilder;
 import org.opends.server.util.table.TextTablePrinter;
 
@@ -72,8 +74,6 @@
  */
 public class DBTest
 {
-  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
-
   /** The error stream which this application should use. */
   private final PrintStream err;
 
@@ -160,6 +160,7 @@
   {
     this.out = NullOutputStream.wrapOrNullStream(out);
     this.err = NullOutputStream.wrapOrNullStream(err);
+    JDKLogging.disableLogging();
 
     LocalizableMessage toolDescription = INFO_DESCRIPTION_DBTEST_TOOL.get();
     this.parser = new SubCommandArgumentParser(this.getClass().getName(),
@@ -385,7 +386,6 @@
     }
     catch (InitializationException e)
     {
-      logger.traceException(e);
       printMessage(e.getMessageObject());
       return 1;
     }
@@ -562,7 +562,6 @@
         return 0;
       }
     } catch (Exception e) {
-      logger.traceException(e);
       printMessage(LocalizableMessage.raw(StaticUtils.stackTraceToString(e)));
       return 1;
     }
@@ -985,12 +984,12 @@
           if(dc instanceof Index)
           {
             builder.appendCell(ec.getState().getIndexTrustState(null,
-                                                                ((Index)dc)));
+                                                                (dc)));
           }
           else if(dc instanceof VLVIndex)
           {
             builder.appendCell(ec.getState().getIndexTrustState(null,
-                                                               ((VLVIndex)dc)));
+                                                               (dc)));
           }
           builder.appendCell(dc.getRecordCount());
 
@@ -1718,8 +1717,7 @@
     ArrayList<Backend> backendList = new ArrayList<Backend>();
     ArrayList<BackendCfg>  entryList   = new ArrayList<BackendCfg>();
     ArrayList<List<DN>> dnList = new ArrayList<List<DN>>();
-    int code = BackendToolUtils.getBackends(backendList, entryList, dnList);
-    // TODO: Throw error if return code is not 0
+    BackendToolUtils.getBackends(backendList, entryList, dnList);
 
     LinkedHashMap<LocalDBBackendCfg, BackendImpl> jeBackends =
         new LinkedHashMap<LocalDBBackendCfg, BackendImpl>();
diff --git a/opendj3-server-dev/src/server/org/opends/server/tools/EncodePassword.java b/opendj3-server-dev/src/server/org/opends/server/tools/EncodePassword.java
index 3e1f0b7..721238b 100644
--- a/opendj3-server-dev/src/server/org/opends/server/tools/EncodePassword.java
+++ b/opendj3-server-dev/src/server/org/opends/server/tools/EncodePassword.java
@@ -52,12 +52,13 @@
 import org.opends.server.core.PasswordStorageSchemeConfigManager;
 import org.opends.server.crypto.CryptoManagerSync;
 import org.opends.server.extensions.ConfigFileHandler;
-import org.forgerock.i18n.slf4j.LocalizedLogger;
+import org.opends.server.loggers.JDKLogging;
 import org.opends.server.schema.AuthPasswordSyntax;
 import org.opends.server.schema.UserPasswordSyntax;
 import org.opends.server.types.*;
 import org.forgerock.opendj.ldap.ByteString;
 import org.opends.server.util.BuildVersion;
+
 import com.forgerock.opendj.cli.ArgumentException;
 import com.forgerock.opendj.cli.ArgumentParser;
 import com.forgerock.opendj.cli.BooleanArgument;
@@ -81,9 +82,6 @@
  */
 public class EncodePassword
 {
-  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
-
-
   /**
    * Processes the command-line arguments and performs the requested action.
    *
@@ -135,6 +133,7 @@
   {
     PrintStream out = NullOutputStream.wrapOrNullStream(outStream);
     PrintStream err = NullOutputStream.wrapOrNullStream(errStream);
+    JDKLogging.disableLogging();
 
     // Define the command-line arguments that may be used with this program.
     BooleanArgument   authPasswordSyntax   = null;
@@ -798,8 +797,6 @@
     return SUCCESS;
   }
 
-
-
   private static LocalizableMessage getOutputMessage(boolean passwordMatches)
   {
     if (passwordMatches)
@@ -851,7 +848,7 @@
           HashSet<PluginType> pluginTypes = new HashSet<PluginType>(1);
           directoryServer.initializePlugins(pluginTypes);
           //Initialize Trust Backend.
-          initializeServerBackends(directoryServer);
+          initializeServerBackends(directoryServer, err);
           // Initialize the subentry manager.
           directoryServer.initializeSubentryManager();
           //Initialize PWD policy components.
@@ -872,7 +869,7 @@
     return true;
   }
 
-  private static void initializeServerBackends(DirectoryServer directoryServer)
+  private static void initializeServerBackends(DirectoryServer directoryServer, PrintStream err)
   throws InitializationException, ConfigException {
     directoryServer.initializeRootDSE();
     ServerManagementContext context = ServerManagementContext.getInstance();
@@ -882,7 +879,6 @@
       DN configEntryDN = DN.valueOf(ConfigConstants.DN_BACKEND_BASE);
       backendRoot   = DirectoryServer.getConfigEntry(configEntryDN);
     } catch (Exception e) {
-      logger.traceException(e);
       LocalizableMessage message = ERR_CONFIG_BACKEND_CANNOT_GET_CONFIG_BASE.get(
           getExceptionMessage(e));
       throw new ConfigException(message, e);
@@ -904,9 +900,9 @@
             backendClass = DirectoryServer.loadClass(className);
             backend = (Backend) backendClass.newInstance();
           } catch (Exception e) {
-            logger.traceException(e);
-            logger.error(ERR_CONFIG_BACKEND_CANNOT_INSTANTIATE, className, backendCfg.dn(),
-                  stackTraceToSingleLineString(e));
+            LocalizableMessage msg = ERR_CONFIG_BACKEND_CANNOT_INSTANTIATE.get(className, backendCfg.dn(),
+                stackTraceToSingleLineString(e));
+            err.println(wrapText(msg, MAX_LINE_WIDTH));
             continue;
           }
           backend.setBackendID(backendID);
@@ -915,17 +911,17 @@
             backend.configureBackend(backendCfg);
             backend.initializeBackend();
           } catch (Exception e) {
-            logger.traceException(e);
-            logger.error(ERR_CONFIG_BACKEND_CANNOT_INITIALIZE, className, backendCfg.dn(),
+            LocalizableMessage msg = ERR_CONFIG_BACKEND_CANNOT_INITIALIZE.get(className, backendCfg.dn(),
                   stackTraceToSingleLineString(e));
+            err.println(wrapText(msg, MAX_LINE_WIDTH));
           }
           try {
             DirectoryServer.registerBackend(backend);
           } catch (Exception e)
           {
-            logger.traceException(e);
-            logger.warn(WARN_CONFIG_BACKEND_CANNOT_REGISTER_BACKEND, backendCfg.getBackendId(),
+            LocalizableMessage msg = WARN_CONFIG_BACKEND_CANNOT_REGISTER_BACKEND.get(backendCfg.getBackendId(),
                   getExceptionMessage(e));
+            err.println(wrapText(msg, MAX_LINE_WIDTH));
           }
         }
       }
diff --git a/opendj3-server-dev/src/server/org/opends/server/tools/ExportLDIF.java b/opendj3-server-dev/src/server/org/opends/server/tools/ExportLDIF.java
index 4cd5e63..c2e401e 100644
--- a/opendj3-server-dev/src/server/org/opends/server/tools/ExportLDIF.java
+++ b/opendj3-server-dev/src/server/org/opends/server/tools/ExportLDIF.java
@@ -48,6 +48,7 @@
 import org.opends.server.loggers.DebugLogPublisher;
 import org.opends.server.loggers.DebugLogger;
 import org.opends.server.loggers.ErrorLogPublisher;
+import org.opends.server.loggers.JDKLogging;
 import org.opends.server.loggers.TextDebugLogPublisher;
 import org.opends.server.loggers.TextWriter;
 import org.opends.server.loggers.TextErrorLogPublisher;
@@ -87,7 +88,6 @@
 
   private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
-
   /**
    * The main method for ExportLDIF tool.
    *
@@ -160,6 +160,7 @@
 
     PrintStream out = NullOutputStream.wrapOrNullStream(outStream);
     PrintStream err = NullOutputStream.wrapOrNullStream(errStream);
+    JDKLogging.disableLogging();
 
     // Create the command-line argument parser for use with this program.
     LDAPConnectionArgumentParser argParser =
@@ -306,7 +307,6 @@
     catch (ArgumentException ae)
     {
       LocalizableMessage message = ERR_CANNOT_INITIALIZE_ARGS.get(ae.getMessage());
-
       err.println(wrapText(message, MAX_LINE_WIDTH));
       return 1;
     }
@@ -331,7 +331,6 @@
     catch (ArgumentException ae)
     {
       LocalizableMessage message = ERR_ERROR_PARSING_ARGS.get(ae.getMessage());
-
       err.println(wrapText(message, MAX_LINE_WIDTH));
       err.println(argParser.getUsage());
       return 1;
diff --git a/opendj3-server-dev/src/server/org/opends/server/tools/ImportLDIF.java b/opendj3-server-dev/src/server/org/opends/server/tools/ImportLDIF.java
index de56136..63f9f92 100644
--- a/opendj3-server-dev/src/server/org/opends/server/tools/ImportLDIF.java
+++ b/opendj3-server-dev/src/server/org/opends/server/tools/ImportLDIF.java
@@ -57,6 +57,7 @@
 import org.opends.server.extensions.ConfigFileHandler;
 import org.opends.server.loggers.ErrorLogPublisher;
 import org.opends.server.loggers.ErrorLogger;
+import org.opends.server.loggers.JDKLogging;
 import org.opends.server.loggers.TextErrorLogPublisher;
 import org.opends.server.loggers.TextWriter;
 import org.opends.server.protocols.ldap.LDAPAttribute;
@@ -184,6 +185,7 @@
 
     PrintStream out = NullOutputStream.wrapOrNullStream(outStream);
     PrintStream err = NullOutputStream.wrapOrNullStream(errStream);
+    JDKLogging.disableLogging();
 
     // FIXME -- Need to add a mechanism for verifying the file signature.
 
diff --git a/opendj3-server-dev/src/server/org/opends/server/tools/JavaPropertiesTool.java b/opendj3-server-dev/src/server/org/opends/server/tools/JavaPropertiesTool.java
index df6536c..2b191fe 100644
--- a/opendj3-server-dev/src/server/org/opends/server/tools/JavaPropertiesTool.java
+++ b/opendj3-server-dev/src/server/org/opends/server/tools/JavaPropertiesTool.java
@@ -35,6 +35,7 @@
 import org.opends.messages.ToolMessages;
 import org.opends.quicksetup.Constants;
 import org.opends.quicksetup.util.Utils;
+import org.opends.server.loggers.JDKLogging;
 import org.opends.server.types.NullOutputStream;
 import org.opends.server.util.cli.ConsoleApplication;
 
@@ -175,6 +176,8 @@
 
     PrintStream err = NullOutputStream.wrapOrNullStream(errStream);
 
+    JDKLogging.disableLogging();
+
     JavaPropertiesTool tool = new JavaPropertiesTool(out, err, inStream);
 
     return tool.execute(args);
diff --git a/opendj3-server-dev/src/server/org/opends/server/tools/LDAPCompare.java b/opendj3-server-dev/src/server/org/opends/server/tools/LDAPCompare.java
index 8bef2d7..9449b58 100644
--- a/opendj3-server-dev/src/server/org/opends/server/tools/LDAPCompare.java
+++ b/opendj3-server-dev/src/server/org/opends/server/tools/LDAPCompare.java
@@ -40,7 +40,6 @@
 import org.opends.admin.ads.util.ConnectionUtils;
 import org.forgerock.i18n.LocalizableMessage;
 import org.opends.server.controls.LDAPAssertionRequestControl;
-import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.forgerock.opendj.ldap.DecodeException;
 import org.opends.server.protocols.ldap.CompareRequestProtocolOp;
 import org.opends.server.protocols.ldap.CompareResponseProtocolOp;
@@ -52,6 +51,7 @@
 import org.opends.server.util.Base64;
 import org.opends.server.util.EmbeddedUtils;
 import org.opends.server.util.PasswordReader;
+
 import com.forgerock.opendj.cli.ArgumentException;
 import com.forgerock.opendj.cli.ArgumentParser;
 import com.forgerock.opendj.cli.BooleanArgument;
@@ -72,8 +72,6 @@
  */
 public class LDAPCompare
 {
-  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
-
   /**
    * The fully-qualified name of this class.
    */
@@ -250,7 +248,6 @@
         responseMessage = connection.getLDAPReader().readMessage();
       } catch(DecodeException ae)
       {
-        logger.traceException(ae);
         if (!compareOptions.continueOnError())
         {
           String message = LDAPToolUtils.getMessageForConnectionException(ae);
@@ -752,11 +749,10 @@
         }
         catch (ParseException e)
         {
-          logger.traceException(e);
-
           err.println(wrapText(
                   INFO_COMPARE_CANNOT_BASE64_DECODE_ASSERTION_VALUE.get(),
                   MAX_LINE_WIDTH));
+          err.println(wrapText(e.getLocalizedMessage(), MAX_LINE_WIDTH));
           return CLIENT_SIDE_PARAM_ERROR;
         }
       } else if(nextChar == '<')
@@ -790,7 +786,6 @@
       portNumber = port.getIntValue();
     } catch (ArgumentException ae)
     {
-      logger.traceException(ae);
       err.println(wrapText(ae.getMessage(), MAX_LINE_WIDTH));
       return CLIENT_SIDE_PARAM_ERROR;
     }
@@ -806,7 +801,6 @@
       connectionOptions.setVersionNumber(versionNumber);
     } catch(ArgumentException ae)
     {
-      logger.traceException(ae);
       err.println(wrapText(ae.getMessage(), MAX_LINE_WIDTH));
       return CLIENT_SIDE_PARAM_ERROR;
     }
@@ -838,7 +832,6 @@
         bindPasswordValue = new String(pwChars);
       } catch(Exception ex)
       {
-        logger.traceException(ex);
         err.println(wrapText(ex.getMessage(), MAX_LINE_WIDTH));
         return CLIENT_SIDE_PARAM_ERROR;
       }
@@ -1009,7 +1002,6 @@
         }
         catch (Throwable t)
         {
-          logger.traceException(t);
           String details = t.getMessage();
           if (details == null)
           {
@@ -1040,7 +1032,6 @@
       return SUCCESS;
     } catch(LDAPException le)
     {
-      logger.traceException(le);
       LDAPToolUtils.printErrorMessage(
               err, le.getMessageObject(),
               le.getResultCode(),
@@ -1050,7 +1041,6 @@
       return code;
     } catch(LDAPConnectionException lce)
     {
-      logger.traceException(lce);
       LDAPToolUtils.printErrorMessage(err,
                                       lce.getMessageObject(),
                                       lce.getResultCode(),
@@ -1060,7 +1050,6 @@
       return code;
     } catch(Exception e)
     {
-      logger.traceException(e);
       err.println(wrapText(e.getMessage(), MAX_LINE_WIDTH));
       return OPERATIONS_ERROR;
     } finally
diff --git a/opendj3-server-dev/src/server/org/opends/server/tools/LDAPConnection.java b/opendj3-server-dev/src/server/org/opends/server/tools/LDAPConnection.java
index c85c6b2..70495fe 100644
--- a/opendj3-server-dev/src/server/org/opends/server/tools/LDAPConnection.java
+++ b/opendj3-server-dev/src/server/org/opends/server/tools/LDAPConnection.java
@@ -34,8 +34,7 @@
 import java.net.UnknownHostException;
 import java.util.ArrayList;
 import java.util.concurrent.atomic.AtomicInteger;
-import java.util.logging.ConsoleHandler;
-import java.util.logging.Logger;
+import java.util.logging.Level;
 
 import org.forgerock.i18n.LocalizableMessage;
 import org.opends.server.controls.AuthorizationIdentityResponseControl;
@@ -43,7 +42,7 @@
 import org.opends.server.controls.PasswordPolicyErrorType;
 import org.opends.server.controls.PasswordPolicyResponseControl;
 import org.opends.server.controls.PasswordPolicyWarningType;
-import org.opends.server.loggers.JdkLoggingFormater;
+import org.opends.server.loggers.JDKLogging;
 import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.protocols.ldap.ExtendedRequestProtocolOp;
 import org.opends.server.protocols.ldap.ExtendedResponseProtocolOp;
@@ -182,13 +181,15 @@
     ArrayList<Control> requestControls = new ArrayList<Control> ();
     ArrayList<Control> responseControls = new ArrayList<Control> ();
 
-    if(connectionOptions.isVerbose())
+    if (connectionOptions.isVerbose())
     {
-      Logger logger = Logger.getLogger("org.opends");
-      ConsoleHandler handler = new ConsoleHandler();
-      handler.setFormatter(new JdkLoggingFormater());
-      logger.addHandler(handler);
+      JDKLogging.enableConsoleLoggingForOpenDJ(Level.ALL);
     }
+    else
+    {
+      JDKLogging.disableLogging();
+    }
+
 
     if(connectionOptions.useStartTLS())
     {
diff --git a/opendj3-server-dev/src/server/org/opends/server/tools/LDAPDelete.java b/opendj3-server-dev/src/server/org/opends/server/tools/LDAPDelete.java
index eebc4ea..c6fa335 100644
--- a/opendj3-server-dev/src/server/org/opends/server/tools/LDAPDelete.java
+++ b/opendj3-server-dev/src/server/org/opends/server/tools/LDAPDelete.java
@@ -284,7 +284,6 @@
     PrintStream out = NullOutputStream.wrapOrNullStream(outStream);
     PrintStream err = NullOutputStream.wrapOrNullStream(errStream);
 
-
     LDAPConnectionOptions connectionOptions = new LDAPConnectionOptions();
     LDAPDeleteOptions deleteOptions = new LDAPDeleteOptions();
     LDAPConnection connection = null;
diff --git a/opendj3-server-dev/src/server/org/opends/server/tools/LDIFDiff.java b/opendj3-server-dev/src/server/org/opends/server/tools/LDIFDiff.java
index c71da15..3489bfe 100644
--- a/opendj3-server-dev/src/server/org/opends/server/tools/LDIFDiff.java
+++ b/opendj3-server-dev/src/server/org/opends/server/tools/LDIFDiff.java
@@ -42,6 +42,7 @@
 import org.forgerock.i18n.LocalizableMessage;
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.extensions.ConfigFileHandler;
+import org.opends.server.loggers.JDKLogging;
 import org.opends.server.types.Attribute;
 import org.opends.server.types.AttributeBuilder;
 import org.opends.server.types.AttributeType;
@@ -60,6 +61,7 @@
 import org.opends.server.util.LDIFReader;
 import org.opends.server.util.LDIFWriter;
 import org.opends.server.util.StaticUtils;
+
 import com.forgerock.opendj.cli.ArgumentException;
 import com.forgerock.opendj.cli.ArgumentParser;
 import com.forgerock.opendj.cli.BooleanArgument;
@@ -147,6 +149,7 @@
   {
     PrintStream out = NullOutputStream.wrapOrNullStream(outStream);
     PrintStream err = NullOutputStream.wrapOrNullStream(errStream);
+    JDKLogging.disableLogging();
 
     BooleanArgument overwriteExisting;
     BooleanArgument showUsage;
diff --git a/opendj3-server-dev/src/server/org/opends/server/tools/LDIFModify.java b/opendj3-server-dev/src/server/org/opends/server/tools/LDIFModify.java
index cf4db51..b09cbe0 100644
--- a/opendj3-server-dev/src/server/org/opends/server/tools/LDIFModify.java
+++ b/opendj3-server-dev/src/server/org/opends/server/tools/LDIFModify.java
@@ -40,6 +40,7 @@
 import org.forgerock.i18n.LocalizableMessage;
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.extensions.ConfigFileHandler;
+import org.opends.server.loggers.JDKLogging;
 import org.opends.server.protocols.ldap.LDAPResultCode;
 import org.opends.server.types.Attribute;
 import org.opends.server.types.AttributeType;
@@ -64,6 +65,7 @@
 import org.opends.server.util.LDIFReader;
 import org.opends.server.util.LDIFWriter;
 import org.opends.server.util.ModifyChangeRecordEntry;
+
 import com.forgerock.opendj.cli.ArgumentException;
 import com.forgerock.opendj.cli.ArgumentParser;
 import com.forgerock.opendj.cli.BooleanArgument;
@@ -419,6 +421,7 @@
                                    OutputStream errStream)
   {
     PrintStream err = NullOutputStream.wrapOrNullStream(errStream);
+    JDKLogging.disableLogging();
 
     // Prepare the argument parser.
     BooleanArgument showUsage;
diff --git a/opendj3-server-dev/src/server/org/opends/server/tools/LDIFSearch.java b/opendj3-server-dev/src/server/org/opends/server/tools/LDIFSearch.java
index 255fb4e..ae57be3 100644
--- a/opendj3-server-dev/src/server/org/opends/server/tools/LDIFSearch.java
+++ b/opendj3-server-dev/src/server/org/opends/server/tools/LDIFSearch.java
@@ -37,6 +37,7 @@
 import org.forgerock.i18n.LocalizableMessage;
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.extensions.ConfigFileHandler;
+import org.opends.server.loggers.JDKLogging;
 import org.opends.server.protocols.ldap.LDAPResultCode;
 import org.opends.server.types.*;
 import org.opends.server.util.BuildVersion;
@@ -136,6 +137,7 @@
   {
     PrintStream out = NullOutputStream.wrapOrNullStream(outStream);
     PrintStream err = NullOutputStream.wrapOrNullStream(errStream);
+    JDKLogging.disableLogging();
 
     LinkedHashSet<String> scopeStrings = new LinkedHashSet<String>(4);
     scopeStrings.add(SCOPE_STRING_BASE);
diff --git a/opendj3-server-dev/src/server/org/opends/server/tools/ListBackends.java b/opendj3-server-dev/src/server/org/opends/server/tools/ListBackends.java
index 3b1de0a..5be008c 100644
--- a/opendj3-server-dev/src/server/org/opends/server/tools/ListBackends.java
+++ b/opendj3-server-dev/src/server/org/opends/server/tools/ListBackends.java
@@ -29,6 +29,7 @@
 
 
 
+
 import java.io.OutputStream;
 import java.io.PrintStream;
 import java.util.Iterator;
@@ -42,15 +43,18 @@
 import org.opends.server.config.StringConfigAttribute;
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.extensions.ConfigFileHandler;
+import org.opends.server.loggers.JDKLogging;
 import org.opends.server.types.DirectoryException;
 import org.opends.server.types.DN;
 import org.opends.server.types.InitializationException;
 import org.opends.server.types.NullOutputStream;
 import org.opends.server.util.BuildVersion;
+
 import com.forgerock.opendj.cli.ArgumentException;
 import com.forgerock.opendj.cli.ArgumentParser;
 import com.forgerock.opendj.cli.BooleanArgument;
 import com.forgerock.opendj.cli.StringArgument;
+
 import org.opends.server.util.table.TableBuilder;
 import org.opends.server.util.table.TextTablePrinter;
 
@@ -124,6 +128,7 @@
   {
     PrintStream out = NullOutputStream.wrapOrNullStream(outStream);
     PrintStream err = NullOutputStream.wrapOrNullStream(errStream);
+    JDKLogging.disableLogging();
 
     // Define the command-line arguments that may be used with this program.
     BooleanArgument displayUsage = null;
diff --git a/opendj3-server-dev/src/server/org/opends/server/tools/ManageAccount.java b/opendj3-server-dev/src/server/org/opends/server/tools/ManageAccount.java
index ae16fbc..6b9dc8e 100644
--- a/opendj3-server-dev/src/server/org/opends/server/tools/ManageAccount.java
+++ b/opendj3-server-dev/src/server/org/opends/server/tools/ManageAccount.java
@@ -40,12 +40,14 @@
 import org.forgerock.i18n.LocalizableMessage;
 import org.opends.server.admin.AdministrationConnector;
 import org.forgerock.opendj.io.*;
+import org.opends.server.loggers.JDKLogging;
 import org.opends.server.protocols.ldap.ExtendedRequestProtocolOp;
 import org.opends.server.protocols.ldap.ExtendedResponseProtocolOp;
 import org.opends.server.protocols.ldap.LDAPMessage;
 import org.opends.server.protocols.ldap.LDAPResultCode;
 import org.opends.server.types.NullOutputStream;
 import org.forgerock.opendj.ldap.ByteStringBuilder;
+
 import com.forgerock.opendj.cli.Argument;
 import com.forgerock.opendj.cli.ArgumentException;
 import com.forgerock.opendj.cli.BooleanArgument;
@@ -55,13 +57,16 @@
 import com.forgerock.opendj.cli.StringArgument;
 import com.forgerock.opendj.cli.SubCommand;
 import com.forgerock.opendj.cli.SubCommandArgumentParser;
+
 import org.opends.server.util.args.LDAPConnectionArgumentParser;
 
 import static org.opends.server.extensions.
                    PasswordPolicyStateExtendedOperation.*;
 import static org.opends.messages.ToolMessages.*;
 import static org.opends.server.tools.ToolConstants.*;
+
 import org.opends.server.util.EmbeddedUtils;
+
 import static org.opends.server.util.ServerConstants.*;
 import static org.opends.server.util.StaticUtils.*;
 
@@ -536,6 +541,7 @@
   {
     out = NullOutputStream.wrapOrNullStream(outStream);
     err = NullOutputStream.wrapOrNullStream(errStream);
+    JDKLogging.disableLogging();
 
     // Parse the command-line arguments provided to the program.
     int result = parseArgsAndConnect(args, initServer);
diff --git a/opendj3-server-dev/src/server/org/opends/server/tools/ManageTasks.java b/opendj3-server-dev/src/server/org/opends/server/tools/ManageTasks.java
index 89ecb16..5917806 100644
--- a/opendj3-server-dev/src/server/org/opends/server/tools/ManageTasks.java
+++ b/opendj3-server-dev/src/server/org/opends/server/tools/ManageTasks.java
@@ -33,8 +33,6 @@
 
 import org.opends.server.config.ConfigException;
 import org.opends.server.core.DirectoryServer;
-import org.opends.server.loggers.ErrorLogPublisher;
-import org.opends.server.loggers.ErrorLogger;
 import org.forgerock.opendj.ldap.DecodeException;
 
 import static org.opends.server.tools.ToolConstants.*;
@@ -79,8 +77,6 @@
  */
 public class ManageTasks extends ConsoleApplication {
 
-  private static ErrorLogPublisher errorLogPublisher = null;
-
   // This CLI is always using the administration connector with SSL
   private static final boolean alwaysSSL = true;
 
@@ -92,10 +88,6 @@
   public static void main(String[] args) {
     int retCode = mainTaskInfo(args, System.in, System.out, System.err);
 
-    if (errorLogPublisher != null) {
-      ErrorLogger.getInstance().removeLogPublisher(errorLogPublisher);
-    }
-
     if (retCode != 0) {
       System.exit(filterExitCode(retCode));
     }
diff --git a/opendj3-server-dev/src/server/org/opends/server/tools/RebuildIndex.java b/opendj3-server-dev/src/server/org/opends/server/tools/RebuildIndex.java
index 1a9d5fe..8070803 100644
--- a/opendj3-server-dev/src/server/org/opends/server/tools/RebuildIndex.java
+++ b/opendj3-server-dev/src/server/org/opends/server/tools/RebuildIndex.java
@@ -47,6 +47,7 @@
 import org.opends.server.loggers.DebugLogPublisher;
 import org.opends.server.loggers.DebugLogger;
 import org.opends.server.loggers.ErrorLogPublisher;
+import org.opends.server.loggers.JDKLogging;
 import org.opends.server.loggers.TextDebugLogPublisher;
 import org.opends.server.loggers.TextWriter;
 import org.opends.server.loggers.ErrorLogger;
@@ -144,6 +145,7 @@
   {
     final PrintStream out = NullOutputStream.wrapOrNullStream(outStream);
     final PrintStream err = NullOutputStream.wrapOrNullStream(errStream);
+    JDKLogging.disableLogging();
 
     // Initialize all the command-line argument types and register them with the
     // parser.
diff --git a/opendj3-server-dev/src/server/org/opends/server/tools/RestoreDB.java b/opendj3-server-dev/src/server/org/opends/server/tools/RestoreDB.java
index 334402b..be1e307 100644
--- a/opendj3-server-dev/src/server/org/opends/server/tools/RestoreDB.java
+++ b/opendj3-server-dev/src/server/org/opends/server/tools/RestoreDB.java
@@ -50,6 +50,7 @@
 import org.opends.server.loggers.DebugLogPublisher;
 import org.opends.server.loggers.DebugLogger;
 import org.opends.server.loggers.ErrorLogPublisher;
+import org.opends.server.loggers.JDKLogging;
 import org.opends.server.loggers.TextDebugLogPublisher;
 import org.opends.server.loggers.TextWriter;
 import org.opends.server.loggers.ErrorLogger;
@@ -151,6 +152,7 @@
   {
     PrintStream out = NullOutputStream.wrapOrNullStream(outStream);
     PrintStream err = NullOutputStream.wrapOrNullStream(errStream);
+    JDKLogging.disableLogging();
 
     // Create the command-line argument parser for use with this program.
     LDAPConnectionArgumentParser argParser =
diff --git a/opendj3-server-dev/src/server/org/opends/server/tools/StartWindowsService.java b/opendj3-server-dev/src/server/org/opends/server/tools/StartWindowsService.java
index 1c0f711..245fc57 100644
--- a/opendj3-server-dev/src/server/org/opends/server/tools/StartWindowsService.java
+++ b/opendj3-server-dev/src/server/org/opends/server/tools/StartWindowsService.java
@@ -31,6 +31,7 @@
 import java.io.OutputStream;
 import java.io.PrintStream;
 
+import org.opends.server.loggers.JDKLogging;
 import org.opends.server.types.NullOutputStream;
 import org.opends.server.util.SetupUtils;
 
@@ -84,8 +85,9 @@
                            OutputStream errStream)
   {
     int returnValue;
-    PrintStream out = NullOutputStream.wrapOrNullStream(outStream);
+    NullOutputStream.wrapOrNullStream(outStream);
     PrintStream err = NullOutputStream.wrapOrNullStream(errStream);
+    JDKLogging.disableLogging();
 
     String serviceName = ConfigureWindowsService.getServiceName();
     if (serviceName == null)
diff --git a/opendj3-server-dev/src/server/org/opends/server/tools/StopDS.java b/opendj3-server-dev/src/server/org/opends/server/tools/StopDS.java
index 92fb334..59e5c4d 100644
--- a/opendj3-server-dev/src/server/org/opends/server/tools/StopDS.java
+++ b/opendj3-server-dev/src/server/org/opends/server/tools/StopDS.java
@@ -46,6 +46,7 @@
 import org.opends.server.controls.ProxiedAuthV2Control;
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.core.LockFileManager;
+import org.opends.server.loggers.JDKLogging;
 import org.opends.server.protocols.ldap.AddRequestProtocolOp;
 import org.opends.server.protocols.ldap.AddResponseProtocolOp;
 import org.opends.server.protocols.ldap.ExtendedResponseProtocolOp;
@@ -182,7 +183,7 @@
   {
     PrintStream out = NullOutputStream.wrapOrNullStream(outStream);
     PrintStream err = NullOutputStream.wrapOrNullStream(errStream);
-
+    JDKLogging.disableLogging();
 
     // Define all the arguments that may be used with this program.
     LocalizableMessage toolDescription = INFO_STOPDS_TOOL_DESCRIPTION.get();
diff --git a/opendj3-server-dev/src/server/org/opends/server/tools/StopWindowsService.java b/opendj3-server-dev/src/server/org/opends/server/tools/StopWindowsService.java
index 8ed4a14..65b058a 100644
--- a/opendj3-server-dev/src/server/org/opends/server/tools/StopWindowsService.java
+++ b/opendj3-server-dev/src/server/org/opends/server/tools/StopWindowsService.java
@@ -31,6 +31,7 @@
 import java.io.OutputStream;
 import java.io.PrintStream;
 
+import org.opends.server.loggers.JDKLogging;
 import org.opends.server.types.NullOutputStream;
 import org.opends.server.util.SetupUtils;
 
@@ -83,8 +84,9 @@
                            OutputStream errStream)
   {
     int returnValue;
-    PrintStream out = NullOutputStream.wrapOrNullStream(outStream);
+    NullOutputStream.wrapOrNullStream(outStream);
     PrintStream err = NullOutputStream.wrapOrNullStream(errStream);
+    JDKLogging.disableLogging();
 
     String serviceName = ConfigureWindowsService.getServiceName();
     if (serviceName == null)
diff --git a/opendj3-server-dev/src/server/org/opends/server/tools/VerifyIndex.java b/opendj3-server-dev/src/server/org/opends/server/tools/VerifyIndex.java
index 06633a4..d8feb07 100644
--- a/opendj3-server-dev/src/server/org/opends/server/tools/VerifyIndex.java
+++ b/opendj3-server-dev/src/server/org/opends/server/tools/VerifyIndex.java
@@ -28,8 +28,19 @@
 
 
 
+import static org.opends.messages.ToolMessages.*;
+import static org.opends.server.tools.ToolConstants.*;
+import static org.opends.server.util.ServerConstants.*;
+import static org.opends.server.util.StaticUtils.*;
+
+import java.io.OutputStream;
+import java.io.PrintStream;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.forgerock.i18n.LocalizableMessage;
+import org.opends.server.admin.std.server.BackendCfg;
 import org.opends.server.api.Backend;
-import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.backends.jeb.BackendImpl;
 import org.opends.server.backends.jeb.VerifyConfig;
 import org.opends.server.config.ConfigException;
@@ -37,15 +48,11 @@
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.core.LockFileManager;
 import org.opends.server.extensions.ConfigFileHandler;
-import org.opends.server.loggers.DebugLogPublisher;
-import org.opends.server.loggers.DebugLogger;
-import org.opends.server.loggers.ErrorLogPublisher;
-import org.opends.server.loggers.TextDebugLogPublisher;
-import org.opends.server.loggers.TextWriter;
-import org.opends.server.loggers.ErrorLogger;
-import org.opends.server.loggers.TextErrorLogPublisher;
-import org.opends.server.loggers.TraceSettings;
-import org.opends.server.types.*;
+import org.opends.server.loggers.JDKLogging;
+import org.opends.server.types.DN;
+import org.opends.server.types.DirectoryException;
+import org.opends.server.types.InitializationException;
+import org.opends.server.types.NullOutputStream;
 import org.opends.server.util.BuildVersion;
 
 import com.forgerock.opendj.cli.ArgumentException;
@@ -53,21 +60,6 @@
 import com.forgerock.opendj.cli.BooleanArgument;
 import com.forgerock.opendj.cli.StringArgument;
 
-import java.io.OutputStream;
-import java.io.PrintStream;
-import java.util.ArrayList;
-import java.util.List;
-
-import static org.opends.messages.ToolMessages.*;
-
-import org.forgerock.i18n.LocalizableMessage;
-
-import static org.opends.server.util.ServerConstants.*;
-import static org.opends.server.util.StaticUtils.*;
-import static org.opends.server.tools.ToolConstants.*;
-
-import org.opends.server.admin.std.server.BackendCfg;
-
 
 /**
  * This program provides a utility to verify the contents of the indexes
@@ -78,8 +70,6 @@
 public class VerifyIndex
 {
 
-  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
-
   /**
    * Processes the command-line arguments and invokes the verify process.
    *
@@ -114,6 +104,7 @@
   {
     PrintStream out = NullOutputStream.wrapOrNullStream(outStream);
     PrintStream err = NullOutputStream.wrapOrNullStream(errStream);
+    JDKLogging.disableLogging();
 
     // Define the command-line arguments that may be used with this program.
     StringArgument  configClass             = null;
@@ -367,29 +358,8 @@
         err.println(wrapText(message, MAX_LINE_WIDTH));
         return 1;
       }
-
-
-      try
-      {
-        ErrorLogPublisher errorLogPublisher =
-            TextErrorLogPublisher.getToolStartupTextErrorPublisher(
-            new TextWriter.STREAM(out));
-        DebugLogPublisher debugLogPublisher =
-            TextDebugLogPublisher.getStartupTextDebugPublisher(
-            new TextWriter.STREAM(out));
-        debugLogPublisher.addTraceSettings(null,
-            new TraceSettings());
-        ErrorLogger.getInstance().addLogPublisher(errorLogPublisher);
-        DebugLogger.getInstance().addLogPublisher(debugLogPublisher);
-      }
-      catch(Exception e)
-      {
-        err.println("Error installing the custom error logger: " +
-                    stackTraceToSingleLineString(e));
-      }
     }
 
-
     // Decode the base DN provided by the user.
     DN verifyBaseDN ;
     try
@@ -398,12 +368,14 @@
     }
     catch (DirectoryException de)
     {
-      logger.error(ERR_CANNOT_DECODE_BASE_DN, baseDNString.getValue(), de.getMessageObject());
+      err.println(wrapText(ERR_CANNOT_DECODE_BASE_DN.get(baseDNString.getValue(),
+          de.getMessageObject()), MAX_LINE_WIDTH));
       return 1;
     }
     catch (Exception e)
     {
-      logger.error(ERR_CANNOT_DECODE_BASE_DN, baseDNString.getValue(), getExceptionMessage(e));
+      err.println(wrapText(ERR_CANNOT_DECODE_BASE_DN.get(baseDNString.getValue(),
+          getExceptionMessage(e)), MAX_LINE_WIDTH));
       return 1;
     }
 
@@ -433,7 +405,7 @@
           }
           else
           {
-            logger.error(ERR_MULTIPLE_BACKENDS_FOR_BASE, baseDNString.getValue());
+            err.println(wrapText(ERR_MULTIPLE_BACKENDS_FOR_BASE.get(baseDNString.getValue()), MAX_LINE_WIDTH));
             return 1;
           }
           break;
@@ -443,13 +415,13 @@
 
     if (backend == null)
     {
-      logger.error(ERR_NO_BACKENDS_FOR_BASE, baseDNString.getValue());
+      err.println(wrapText(ERR_NO_BACKENDS_FOR_BASE.get(baseDNString.getValue()), MAX_LINE_WIDTH));
       return 1;
     }
 
     if (!(backend instanceof BackendImpl))
     {
-      logger.error(ERR_BACKEND_NO_INDEXING_SUPPORT);
+      err.println(wrapText(ERR_BACKEND_NO_INDEXING_SUPPORT.get(), MAX_LINE_WIDTH));
       return 1;
     }
 
@@ -479,13 +451,15 @@
       StringBuilder failureReason = new StringBuilder();
       if (! LockFileManager.acquireSharedLock(lockFile, failureReason))
       {
-        logger.error(ERR_VERIFYINDEX_CANNOT_LOCK_BACKEND, backend.getBackendID(), failureReason);
+        err.println(wrapText(ERR_VERIFYINDEX_CANNOT_LOCK_BACKEND.get(backend.getBackendID(),
+            failureReason), MAX_LINE_WIDTH));
         return 1;
       }
     }
     catch (Exception e)
     {
-      logger.error(ERR_VERIFYINDEX_CANNOT_LOCK_BACKEND, backend.getBackendID(), getExceptionMessage(e));
+      err.println(wrapText(ERR_VERIFYINDEX_CANNOT_LOCK_BACKEND.get(backend.getBackendID(),
+          getExceptionMessage(e)), MAX_LINE_WIDTH));
       return 1;
     }
 
@@ -510,7 +484,8 @@
     }
     catch (Exception e)
     {
-      logger.error(ERR_VERIFYINDEX_ERROR_DURING_VERIFY, stackTraceToSingleLineString(e));
+      err.println(wrapText(ERR_VERIFYINDEX_ERROR_DURING_VERIFY.get(stackTraceToSingleLineString(e)),
+          MAX_LINE_WIDTH));
       returnCode = 1;
     }
 
@@ -522,14 +497,17 @@
       StringBuilder failureReason = new StringBuilder();
       if (! LockFileManager.releaseLock(lockFile, failureReason))
       {
-        logger.warn(WARN_VERIFYINDEX_CANNOT_UNLOCK_BACKEND, backend.getBackendID(), failureReason);
+        err.println(wrapText(WARN_VERIFYINDEX_CANNOT_UNLOCK_BACKEND.get(backend.getBackendID(),
+            failureReason), MAX_LINE_WIDTH));
       }
     }
     catch (Exception e)
     {
-      logger.warn(WARN_VERIFYINDEX_CANNOT_UNLOCK_BACKEND, backend.getBackendID(), getExceptionMessage(e));
+      err.println(wrapText(WARN_VERIFYINDEX_CANNOT_UNLOCK_BACKEND.get(backend.getBackendID(),
+          getExceptionMessage(e)), MAX_LINE_WIDTH));
     }
 
     return returnCode;
   }
 }
+
diff --git a/opendj3-server-dev/src/server/org/opends/server/tools/WaitForFileDelete.java b/opendj3-server-dev/src/server/org/opends/server/tools/WaitForFileDelete.java
index 25546dc..dcebe33 100644
--- a/opendj3-server-dev/src/server/org/opends/server/tools/WaitForFileDelete.java
+++ b/opendj3-server-dev/src/server/org/opends/server/tools/WaitForFileDelete.java
@@ -30,6 +30,7 @@
 
 import org.forgerock.i18n.LocalizableMessage;
 import org.opends.server.core.DirectoryServer;
+import org.opends.server.loggers.JDKLogging;
 import org.opends.server.types.NullOutputStream;
 import org.opends.server.util.cli.ConsoleApplication;
 
@@ -126,6 +127,7 @@
     int exitCode;
     PrintStream out = NullOutputStream.wrapOrNullStream(outStream);
     PrintStream err = NullOutputStream.wrapOrNullStream(errStream);
+    JDKLogging.disableLogging();
     try
     {
       WaitForFileDelete wffd = new WaitForFileDelete(out, err, System.in);
diff --git a/opendj3-server-dev/src/server/org/opends/server/tools/dsconfig/DSConfig.java b/opendj3-server-dev/src/server/org/opends/server/tools/dsconfig/DSConfig.java
index 277dfc2..b3dafed 100644
--- a/opendj3-server-dev/src/server/org/opends/server/tools/dsconfig/DSConfig.java
+++ b/opendj3-server-dev/src/server/org/opends/server/tools/dsconfig/DSConfig.java
@@ -67,7 +67,6 @@
 import org.opends.server.admin.client.ManagedObjectDecodingException;
 import org.opends.server.admin.client.MissingMandatoryPropertiesException;
 import org.opends.server.admin.client.OperationRejectedException;
-import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.tools.ClientException;
 import org.opends.server.types.InitializationException;
 import org.opends.server.util.BuildVersion;
@@ -287,7 +286,6 @@
    * customization.
    */
   public static final String GENERIC_TYPE = "generic";
-  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   // This CLI is always using the administration connector with SSL
   private static final boolean alwaysSSL = true;
@@ -1025,7 +1023,6 @@
 
       return 1;
     } catch (Exception e) {
-      logger.traceException(e);
       println(LocalizableMessage.raw(StaticUtils.stackTraceToString(e)));
       return 1;
     }

--
Gitblit v1.10.0