From c3283d941c30a132b3133a5a0f727a539a0ca148 Mon Sep 17 00:00:00 2001
From: Nicolas Capponi <nicolas.capponi@forgerock.com>
Date: Thu, 06 Feb 2014 13:51:13 +0000
Subject: [PATCH] Fix OPENDJ-1289 Runtime debug configuration changes have no effect

---
 opendj-sdk/opendj3-server-dev/src/server/org/opends/server/loggers/HTTPAccessLogger.java                    |   65 ++---
 opendj-sdk/opendj3-server-dev/src/server/org/opends/server/tools/LDAPConnection.java                        |   12 
 opendj-sdk/opendj3-server-dev/src/server/org/opends/server/tools/BackUpDB.java                              |    8 
 opendj-sdk/opendj3-server-dev/src/admin/defn/org/opends/server/admin/std/DebugLogPublisherConfiguration.xml |    4 
 opendj-sdk/opendj3-server-dev/src/server/org/opends/server/tools/RestoreDB.java                             |    8 
 opendj-sdk/opendj3-server-dev/src/server/org/opends/server/loggers/AbstractLogger.java                      |   41 +++-
 opendj-sdk/opendj3-server-dev/src/server/org/opends/server/loggers/AccessLogger.java                        |   53 ++--
 opendj-sdk/opendj3-server-dev/src/server/org/opends/server/loggers/ActionType.java                          |    3 
 opendj-sdk/opendj3-server-dev/src/server/org/opends/server/core/DirectoryServer.java                        |   25 +-
 opendj-sdk/opendj3-server-dev/src/server/org/opends/server/tools/ImportLDIF.java                            |    4 
 opendj-sdk/opendj3-server-dev/src/server/org/opends/server/tools/ManageTasks.java                           |    5 
 opendj-sdk/opendj3-server-dev/src/server/org/opends/server/tools/RebuildIndex.java                          |    8 
 opendj-sdk/opendj3-server-dev/src/server/org/opends/server/loggers/ErrorLogger.java                         |   62 ++---
 opendj-sdk/opendj3-server-dev/src/server/org/opends/server/tools/VerifyIndex.java                           |    8 
 opendj-sdk/opendj3-server-dev/src/server/org/opends/server/loggers/DebugLogger.java                         |   85 +++-----
 opendj-sdk/opendj3-server-dev/src/server/org/opends/server/loggers/TextDebugLogPublisher.java               |    2 
 opendj-sdk/opendj3-server-dev/src/server/org/opends/server/tools/ExportLDIF.java                            |    8 
 opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/TestCaseUtils.java       |   27 +-
 opendj-sdk/opendj3-server-dev/src/server/org/opends/server/loggers/DebugStackTraceFormatter.java            |    3 
 opendj-sdk/opendj3-server-dev/src/server/org/opends/server/loggers/DebugTracer.java                         |  154 ++++++++-------
 20 files changed, 291 insertions(+), 294 deletions(-)

diff --git a/opendj-sdk/opendj3-server-dev/src/admin/defn/org/opends/server/admin/std/DebugLogPublisherConfiguration.xml b/opendj-sdk/opendj3-server-dev/src/admin/defn/org/opends/server/admin/std/DebugLogPublisherConfiguration.xml
index 5c27b4c..a0feeac 100644
--- a/opendj-sdk/opendj3-server-dev/src/admin/defn/org/opends/server/admin/std/DebugLogPublisherConfiguration.xml
+++ b/opendj-sdk/opendj3-server-dev/src/admin/defn/org/opends/server/admin/std/DebugLogPublisherConfiguration.xml
@@ -57,8 +57,8 @@
     </adm:profile>
     <adm:profile name="cli">
       <cli:relation>
-        <cli:default-property name="debug-level" />
-        <cli:default-property name="debug-category" />
+        <cli:default-property name="enabled" />
+        <cli:default-property name="debug-exceptions-only" />
       </cli:relation>
     </adm:profile>
   </adm:relation>
diff --git a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/core/DirectoryServer.java b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/core/DirectoryServer.java
index d4f4391..497e5ae 100644
--- a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/core/DirectoryServer.java
+++ b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/core/DirectoryServer.java
@@ -30,9 +30,6 @@
 import static org.opends.messages.CoreMessages.*;
 import static org.opends.messages.ToolMessages.*;
 import static org.opends.server.config.ConfigConstants.*;
-import static org.opends.server.loggers.AccessLogger.*;
-import static org.opends.server.loggers.DebugLogger.*;
-import static org.opends.server.loggers.ErrorLogger.*;
 import static org.opends.server.schema.SchemaConstants.*;
 import static org.opends.server.util.DynamicConstants.*;
 import static org.opends.server.util.ServerConstants.*;
@@ -8100,9 +8097,9 @@
     // loggers.
     logger.info(NOTE_SERVER_STOPPED.get());
 
-    removeAllAccessLogPublishers();
-    removeAllErrorLogPublishers();
-    removeAllDebugLogPublishers();
+    AccessLogger.getInstance().removeAllLogPublishers();
+    ErrorLogger.getInstance().removeAllLogPublishers();
+    DebugLogger.getInstance().removeAllLogPublishers();
 
     // Now that the loggers are disabled we can shutdown the timer.
     TimeThread.stop();
@@ -9186,18 +9183,16 @@
                          "standard error:  " + stackTraceToSingleLineString(e));
     }
 
-
     // Install the default loggers so the startup messages
     // will be printed.
-    TextErrorLogPublisher startupErrorLogPublisher =
+    ErrorLogPublisher startupErrorLogPublisher =
         TextErrorLogPublisher.getServerStartupTextErrorPublisher(
             new TextWriter.STDOUT());
-    ErrorLogger.addErrorLogPublisher(startupErrorLogPublisher);
+    ErrorLogger.getInstance().addLogPublisher(startupErrorLogPublisher);
 
-    TextDebugLogPublisher startupDebugLogPublisher =
-        TextDebugLogPublisher.getStartupTextDebugPublisher(
-            new TextWriter.STDOUT());
-    DebugLogger.addDebugLogPublisher(startupDebugLogPublisher);
+    DebugLogPublisher startupDebugLogPublisher =
+        TextDebugLogPublisher.getStartupTextDebugPublisher(new TextWriter.STDOUT());
+    DebugLogger.getInstance().addLogPublisher(startupDebugLogPublisher);
 
 
     // Create an environment configuration for the server and populate a number
@@ -9271,8 +9266,8 @@
       shutDown(theDirectoryServer.getClass().getName(), message);
     }
 
-    ErrorLogger.removeErrorLogPublisher(startupErrorLogPublisher);
-    DebugLogger.removeDebugLogPublisher(startupDebugLogPublisher);
+    ErrorLogger.getInstance().removeLogPublisher(startupErrorLogPublisher);
+    DebugLogger.getInstance().removeLogPublisher(startupDebugLogPublisher);
   }
 
   /**
diff --git a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/loggers/AbstractLogger.java b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/loggers/AbstractLogger.java
index 44d90b3..3a209d1 100644
--- a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/loggers/AbstractLogger.java
+++ b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/loggers/AbstractLogger.java
@@ -147,11 +147,33 @@
   }
 
   /**
-   * Returns the logger storage for the current logger.
+   * Returns the log publishers.
    *
-   * @return the logger storage for the current logger
+   * @return the collection of {@link LogPublisher}s
    */
-  protected abstract LoggerStorage<P, C> getStorage();
+  protected abstract Collection<P> getLogPublishers();
+
+  /**
+   * Add a log publisher to the logger.
+   *
+   * @param publisher
+   *          The log publisher to add.
+   */
+  public abstract void addLogPublisher(P publisher);
+
+  /**
+   * Remove a log publisher from the logger.
+   *
+   * @param publisher
+   *          The log publisher to remove.
+   * @return True if the log publisher is removed or false otherwise.
+   */
+  public abstract boolean removeLogPublisher(P publisher);
+
+  /**
+   * Removes all existing log publishers from the logger.
+   */
+  public abstract void removeAllLogPublishers();
 
   /**
    * Returns the java {@link ClassPropertyDefinition} for the current logger.
@@ -175,7 +197,7 @@
    * @param invalidLoggerClassErrorMessage
    *          the error message to use if the logger class in invalid
    */
-  public AbstractLogger(
+  AbstractLogger(
       final Class<P> logPublisherClass,
       final Arg3<Object, Object, Object>
           invalidLoggerClassErrorMessage)
@@ -208,7 +230,7 @@
 
       if(config.isEnabled())
       {
-        getStorage().addLogPublisher(getLogPublisher(config));
+        addLogPublisher(getLogPublisher(config));
       }
     }
   }
@@ -252,7 +274,7 @@
     {
       try
       {
-        getStorage().addLogPublisher(getLogPublisher(config));
+        addLogPublisher(getLogPublisher(config));
       }
       catch(ConfigException e)
       {
@@ -273,8 +295,7 @@
 
   private P findLogPublisher(DN dn)
   {
-    Collection<P> logPublishers = getStorage().getLogPublishers();
-    for (P publisher : logPublishers)
+    for (P publisher : getLogPublishers())
     {
       if (publisher.getDN().equals(dn))
       {
@@ -322,7 +343,7 @@
       else
       {
         // The publisher is being disabled so shut down and remove.
-        getStorage().removeLogPublisher(logPublisher);
+        removeLogPublisher(logPublisher);
       }
     }
 
@@ -352,7 +373,7 @@
     P logPublisher = findLogPublisher(config.dn());
     if(logPublisher != null)
     {
-      getStorage().removeLogPublisher(logPublisher);
+      removeLogPublisher(logPublisher);
     }
     else
     {
diff --git a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/loggers/AccessLogger.java b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/loggers/AccessLogger.java
index 4c08083..c76e11b 100644
--- a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/loggers/AccessLogger.java
+++ b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/loggers/AccessLogger.java
@@ -52,13 +52,13 @@
       loggerStorage = new LoggerStorage
       <AccessLogPublisher<AccessLogPublisherCfg>, AccessLogPublisherCfg>();
 
-  /** The singleton instance of this class for configuration purposes. */
+  /** The singleton instance of this class. */
   private static final AccessLogger instance = new AccessLogger();
 
   /**
    * The constructor for this class.
    */
-  public AccessLogger()
+  private AccessLogger()
   {
     super((Class) AccessLogPublisher.class,
         ERR_CONFIG_LOGGER_INVALID_ACCESS_LOGGER_CLASS);
@@ -74,10 +74,9 @@
 
   /** {@inheritDoc} */
   @Override
-  protected LoggerStorage<AccessLogPublisher<AccessLogPublisherCfg>,
-      AccessLogPublisherCfg> getStorage()
+  protected Collection<AccessLogPublisher<AccessLogPublisherCfg>> getLogPublishers()
   {
-    return loggerStorage;
+    return loggerStorage.getLogPublishers();
   }
 
   /**
@@ -90,28 +89,7 @@
     return instance;
   }
 
-  /**
-   * Add an access log publisher to the access logger.
-   *
-   * @param publisher The access log publisher to add.
-   */
-  public synchronized static void addAccessLogPublisher(
-      AccessLogPublisher publisher)
-  {
-    loggerStorage.addLogPublisher(publisher);
-  }
 
-  /**
-   * Remove an access log publisher from the access logger.
-   *
-   * @param publisher The access log publisher to remove.
-   * @return The publisher that was removed or null if it was not found.
-   */
-  public synchronized static boolean removeAccessLogPublisher(
-      AccessLogPublisher<AccessLogPublisherCfg> publisher)
-  {
-    return loggerStorage.removeLogPublisher(publisher);
-  }
 
   /**
    * Removes all existing access log publishers from the logger.
@@ -532,5 +510,28 @@
       publisher.logUnbind(unbindOperation);
     }
   }
+
+  /** {@inheritDoc} */
+  @Override
+  public final synchronized void addLogPublisher(
+      AccessLogPublisher<AccessLogPublisherCfg> publisher)
+  {
+    loggerStorage.addLogPublisher(publisher);
+  }
+
+  /** {@inheritDoc} */
+  @Override
+  public final synchronized boolean removeLogPublisher(
+      AccessLogPublisher<AccessLogPublisherCfg> publisher)
+  {
+    return loggerStorage.removeLogPublisher(publisher);
+  }
+
+  /** {@inheritDoc} */
+  @Override
+  public final synchronized void removeAllLogPublishers()
+  {
+    loggerStorage.removeAllLogPublishers();
+  }
 }
 
diff --git a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/loggers/ActionType.java b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/loggers/ActionType.java
index 1468680..984c9e3 100644
--- a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/loggers/ActionType.java
+++ b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/loggers/ActionType.java
@@ -22,6 +22,7 @@
  *
  *
  *      Copyright 2006-2008 Sun Microsystems, Inc.
+ *      Portions Copyright 2014 ForgeRock AS
  */
 package org.opends.server.loggers;
 
@@ -30,7 +31,7 @@
 /**
  * This enumeration defines the post rotation actions possible.
  */
-public enum ActionType
+enum ActionType
 {
   /**
    * The action type that indicates the rotated file should be compressed using
diff --git a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/loggers/DebugLogger.java b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/loggers/DebugLogger.java
index 7100bb2..01e3104 100644
--- a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/loggers/DebugLogger.java
+++ b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/loggers/DebugLogger.java
@@ -28,6 +28,7 @@
 
 import static org.opends.messages.ConfigMessages.*;
 
+import java.util.Collection;
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 
@@ -67,13 +68,13 @@
       loggerStorage = new LoggerStorage
       <DebugLogPublisher<DebugLogPublisherCfg>, DebugLogPublisherCfg>();
 
-  /** The singleton instance of this class for configuration purposes. */
+  /** The singleton instance of this class. */
   static final DebugLogger instance = new DebugLogger();
 
   /**
    * The constructor for this class.
    */
-  public DebugLogger()
+  private DebugLogger()
   {
     super((Class) DebugLogPublisher.class,
         ERR_CONFIG_LOGGER_INVALID_DEBUG_LOGGER_CLASS);
@@ -89,55 +90,9 @@
 
   /** {@inheritDoc} */
   @Override
-  protected LoggerStorage<DebugLogPublisher<DebugLogPublisherCfg>,
-      DebugLogPublisherCfg> getStorage()
+  protected Collection<DebugLogPublisher<DebugLogPublisherCfg>> getLogPublishers()
   {
-    return loggerStorage;
-  }
-
-  /**
-   * Add an debug log publisher to the debug logger.
-   *
-   * @param publisher The debug log publisher to add.
-   */
-  public synchronized static void addDebugLogPublisher(
-      DebugLogPublisher publisher)
-  {
-    loggerStorage.addLogPublisher(publisher);
-
-    updateTracerSettings();
-
-    enabled = true;
-  }
-
-  /**
-   * Remove an debug log publisher from the debug logger.
-   *
-   * @param publisher The debug log publisher to remove.
-   * @return The publisher that was removed or null if it was not found.
-   */
-  public synchronized static boolean removeDebugLogPublisher(
-      DebugLogPublisher publisher)
-  {
-    boolean removed = loggerStorage.removeLogPublisher(publisher);
-
-    updateTracerSettings();
-
-    enabled = !loggerStorage.getLogPublishers().isEmpty();
-
-    return removed;
-  }
-
-  /**
-   * Removes all existing debug log publishers from the logger.
-   */
-  public synchronized static void removeAllDebugLogPublishers()
-  {
-    loggerStorage.removeAllLogPublishers();
-
-    updateTracerSettings();
-
-    enabled = false;
+    return loggerStorage.getLogPublishers();
   }
 
   /**
@@ -195,4 +150,34 @@
     return tracer;
   }
 
+  /** {@inheritDoc} */
+  @Override
+  public final synchronized void addLogPublisher(
+      DebugLogPublisher<DebugLogPublisherCfg> publisher)
+  {
+    loggerStorage.addLogPublisher(publisher);
+    updateTracerSettings();
+    enabled = true;
+  }
+
+  /** {@inheritDoc} */
+  @Override
+  public final synchronized boolean removeLogPublisher(
+      DebugLogPublisher<DebugLogPublisherCfg> publisher)
+  {
+    boolean removed = loggerStorage.removeLogPublisher(publisher);
+    updateTracerSettings();
+    enabled = !loggerStorage.getLogPublishers().isEmpty();
+    return removed;
+  }
+
+  /** {@inheritDoc} */
+  @Override
+  public final synchronized void removeAllLogPublishers()
+  {
+    loggerStorage.removeAllLogPublishers();
+    updateTracerSettings();
+    enabled = false;
+  }
+
 }
diff --git a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/loggers/DebugStackTraceFormatter.java b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/loggers/DebugStackTraceFormatter.java
index 45b2953..ce9d4df 100644
--- a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/loggers/DebugStackTraceFormatter.java
+++ b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/loggers/DebugStackTraceFormatter.java
@@ -93,8 +93,7 @@
 
         // Skip leading frames debug logging classes
         while (firstFrame < frames.length &&
-            isFrameForPackage(frames[firstFrame],
-                              "org.opends.server.loggers.debug")) {
+            DebugTracer.isLoggingStackTraceElement(frames[firstFrame])) {
           firstFrame++;
         }
 
diff --git a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/loggers/DebugTracer.java b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/loggers/DebugTracer.java
index 8efbba0..648f96a 100644
--- a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/loggers/DebugTracer.java
+++ b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/loggers/DebugTracer.java
@@ -111,83 +111,80 @@
    */
   void traceException(String msg, Throwable exception)
   {
-    if(DebugLogger.debugEnabled())
+    StackTraceElement[] stackTrace = null;
+    StackTraceElement[] filteredStackTrace = null;
+    StackTraceElement callerFrame = null;
+    final boolean hasException = (exception != null);
+    for (PublisherSettings settings : publisherSettings)
     {
-      StackTraceElement[] stackTrace = null;
-      StackTraceElement[] filteredStackTrace = null;
-      StackTraceElement callerFrame = null;
-      final boolean hasException = (exception != null);
-      for (PublisherSettings settings : publisherSettings)
+      TraceSettings activeSettings = settings.classSettings;
+      Map<String, TraceSettings> methodSettings = settings.methodSettings;
+
+      if (shouldLog(hasException, activeSettings) || methodSettings != null)
       {
-        TraceSettings activeSettings = settings.classSettings;
-        Map<String, TraceSettings> methodSettings = settings.methodSettings;
-
-        if (shouldLog(hasException, activeSettings) || methodSettings != null)
+        if (stackTrace == null)
         {
-          if(stackTrace == null)
-          {
-            stackTrace = Thread.currentThread().getStackTrace();
-          }
-          if (callerFrame == null)
-          {
-            callerFrame = getCallerFrame(stackTrace);
-          }
+          stackTrace = Thread.currentThread().getStackTrace();
+        }
+        if (callerFrame == null)
+        {
+          callerFrame = getCallerFrame(stackTrace);
+        }
 
-          String signature = callerFrame.getMethodName();
+        String signature = callerFrame.getMethodName();
 
-          // Specific method settings still could exist. Try getting
-          // the settings for this method.
-          if(methodSettings != null)
+        // Specific method settings still could exist. Try getting
+        // the settings for this method.
+        if (methodSettings != null)
+        {
+          TraceSettings mSettings = methodSettings.get(signature);
+
+          if (mSettings == null)
           {
-            TraceSettings mSettings = methodSettings.get(signature);
-
-            if (mSettings == null)
+            // Try looking for an undecorated method name
+            int idx = signature.indexOf('(');
+            if (idx != -1)
             {
-              // Try looking for an undecorated method name
-              int idx = signature.indexOf('(');
-              if (idx != -1)
-              {
-                mSettings =
-                    methodSettings.get(signature.substring(0, idx));
-              }
-            }
-
-            // If this method does have a specific setting and it is not
-            // suppose to be logged, continue.
-            if (mSettings != null)
-            {
-              if(!shouldLog(hasException, mSettings))
-              {
-                continue;
-              }
-              else
-              {
-                activeSettings = mSettings;
-              }
+              mSettings = methodSettings.get(signature.substring(0, idx));
             }
           }
 
-          String sourceLocation = callerFrame.getFileName() + ":" +
-              callerFrame.getLineNumber();
+          // If this method does have a specific setting and it is not
+          // suppose to be logged, continue.
+          if (mSettings != null)
+          {
+            if (!shouldLog(hasException, mSettings))
+            {
+              continue;
+            }
+            else
+            {
+              activeSettings = mSettings;
+            }
+          }
+        }
 
-          if (filteredStackTrace == null && activeSettings.getStackDepth() > 0)
-          {
-            StackTraceElement[] trace = hasException ? exception.getStackTrace() : stackTrace;
-            filteredStackTrace =
-                DebugStackTraceFormatter.SMART_FRAME_FILTER.
-                    getFilteredStackTrace(trace);
-          }
+        String sourceLocation =
+            callerFrame.getFileName() + ":" + callerFrame.getLineNumber();
 
-          if (hasException)
-          {
-            settings.debugPublisher.traceException(activeSettings, signature,
-                sourceLocation, msg, exception, filteredStackTrace);
-          }
-          else
-          {
-            settings.debugPublisher.trace(activeSettings, signature,
-                sourceLocation, msg, filteredStackTrace);
-          }
+        if (filteredStackTrace == null && activeSettings.getStackDepth() > 0)
+        {
+          StackTraceElement[] trace =
+              hasException ? exception.getStackTrace() : stackTrace;
+          filteredStackTrace =
+              DebugStackTraceFormatter.SMART_FRAME_FILTER
+                  .getFilteredStackTrace(trace);
+        }
+
+        if (hasException)
+        {
+          settings.debugPublisher.traceException(activeSettings, signature,
+              sourceLocation, msg, exception, filteredStackTrace);
+        }
+        else
+        {
+          settings.debugPublisher.trace(activeSettings, signature,
+              sourceLocation, msg, filteredStackTrace);
         }
       }
     }
@@ -267,15 +264,10 @@
   {
     if (stackTrace != null && stackTrace.length > 0)
     {
-      // Skip leading frames debug logging classes and getStackTrace
-      // method call frame if any.
+      // Skip all logging related classes
       for (StackTraceElement aStackTrace : stackTrace)
       {
-        if(aStackTrace.getClassName().startsWith(Thread.class.getName()))
-        {
-          continue;
-        }
-        if (!aStackTrace.getClassName().startsWith(DebugTracer.class.getName()))
+        if(!isLoggingStackTraceElement(aStackTrace))
         {
           return aStackTrace;
         }
@@ -285,6 +277,24 @@
     return null;
   }
 
+  /**
+   * Checks if element belongs to a class responsible for logging
+   * (includes the Thread class that may be used to get the stack trace).
+   *
+   * @param trace
+   *            the trace element to check.
+   * @return {@code true} if element corresponds to logging
+   */
+  static boolean isLoggingStackTraceElement(StackTraceElement trace)
+  {
+    return false;
+//    String name = trace.getClassName();
+//    return name.startsWith(Thread.class.getName())
+//        || name.startsWith(DebugTracer.class.getName())
+//        || name.startsWith(OpenDJLoggerAdapter.class.getName())
+//        || name.startsWith(LocalizedLogger.class.getName());
+  }
+
   /** Indicates if there is something to log. */
   private boolean shouldLog(boolean hasException, TraceSettings activeSettings)
   {
diff --git a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/loggers/ErrorLogger.java b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/loggers/ErrorLogger.java
index cc99896..c9d104d 100644
--- a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/loggers/ErrorLogger.java
+++ b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/loggers/ErrorLogger.java
@@ -27,6 +27,7 @@
 package org.opends.server.loggers;
 
 import static org.opends.messages.ConfigMessages.*;
+import java.util.Collection;
 import org.forgerock.i18n.LocalizableMessage;
 import org.opends.messages.Severity;
 import org.opends.server.admin.ClassPropertyDefinition;
@@ -66,7 +67,7 @@
   /**
    * The constructor for this class.
    */
-  public ErrorLogger()
+  private ErrorLogger()
   {
     super((Class) ErrorLogPublisher.class,
         ERR_CONFIG_LOGGER_INVALID_ERROR_LOGGER_CLASS);
@@ -82,41 +83,9 @@
 
   /** {@inheritDoc} */
   @Override
-  protected LoggerStorage<ErrorLogPublisher<ErrorLogPublisherCfg>,
-      ErrorLogPublisherCfg> getStorage()
+  protected Collection<ErrorLogPublisher<ErrorLogPublisherCfg>> getLogPublishers()
   {
-    return loggerStorage;
-  }
-
-  /**
-   * Add an error log publisher to the error logger.
-   *
-   * @param publisher The error log publisher to add.
-   */
-  public synchronized static void addErrorLogPublisher(
-      ErrorLogPublisher publisher)
-  {
-    loggerStorage.addLogPublisher(publisher);
-  }
-
-  /**
-   * Remove an error log publisher from the error logger.
-   *
-   * @param publisher The error log publisher to remove.
-   * @return True if the error log publisher is removed or false otherwise.
-   */
-  public synchronized static boolean removeErrorLogPublisher(
-      ErrorLogPublisher publisher)
-  {
-    return loggerStorage.removeLogPublisher(publisher);
-  }
-
-  /**
-   * Removes all existing error log publishers from the logger.
-   */
-  public synchronized static void removeAllErrorLogPublishers()
-  {
-    loggerStorage.removeAllLogPublishers();
+    return loggerStorage.getLogPublishers();
   }
 
   /**
@@ -188,4 +157,27 @@
     return false;
   }
 
+  /** {@inheritDoc} */
+  @Override
+  public final synchronized void addLogPublisher(
+      ErrorLogPublisher<ErrorLogPublisherCfg> publisher)
+  {
+    loggerStorage.addLogPublisher(publisher);
+  }
+
+  /** {@inheritDoc} */
+  @Override
+  public final synchronized boolean removeLogPublisher(
+      ErrorLogPublisher<ErrorLogPublisherCfg> publisher)
+  {
+    return loggerStorage.removeLogPublisher(publisher);
+  }
+
+  /** {@inheritDoc} */
+  @Override
+  public final synchronized void removeAllLogPublishers()
+  {
+    loggerStorage.removeAllLogPublishers();
+  }
+
 }
diff --git a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/loggers/HTTPAccessLogger.java b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/loggers/HTTPAccessLogger.java
index 2d23227..655f126 100644
--- a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/loggers/HTTPAccessLogger.java
+++ b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/loggers/HTTPAccessLogger.java
@@ -21,7 +21,7 @@
  * CDDL HEADER END
  *
  *
- *      Copyright 2013 ForgeRock AS
+ *      Copyright 2013-2014 ForgeRock AS
  */
 package org.opends.server.loggers;
 
@@ -54,7 +54,7 @@
   /**
    * The constructor for this class.
    */
-  public HTTPAccessLogger()
+  private HTTPAccessLogger()
   {
     super((Class) HTTPAccessLogPublisher.class,
         ERR_CONFIG_LOGGER_INVALID_HTTP_ACCESS_LOGGER_CLASS);
@@ -70,10 +70,9 @@
 
   /** {@inheritDoc} */
   @Override
-  protected LoggerStorage<HTTPAccessLogPublisher<HTTPAccessLogPublisherCfg>,
-      HTTPAccessLogPublisherCfg> getStorage()
+  protected Collection<HTTPAccessLogPublisher<HTTPAccessLogPublisherCfg>> getLogPublishers()
   {
-    return loggerStorage;
+    return loggerStorage.getLogPublishers();
   }
 
   /**
@@ -87,39 +86,6 @@
   }
 
   /**
-   * Add an HTTP access log publisher to the HTTP access logger.
-   *
-   * @param publisher
-   *          The HTTP access log publisher to add.
-   */
-  public synchronized static void addHTTPAccessLogPublisher(
-      HTTPAccessLogPublisher publisher)
-  {
-    loggerStorage.addLogPublisher(publisher);
-  }
-
-  /**
-   * Remove an HTTP access log publisher from the HTTP access logger.
-   *
-   * @param publisher
-   *          The HTTP access log publisher to remove.
-   * @return The publisher that was removed or null if it was not found.
-   */
-  public synchronized static boolean removeHTTPAccessLogPublisher(
-      HTTPAccessLogPublisher<HTTPAccessLogPublisherCfg> publisher)
-  {
-    return loggerStorage.removeLogPublisher(publisher);
-  }
-
-  /**
-   * Removes all existing HTTP access log publishers from the logger.
-   */
-  public synchronized static void removeAllHTTPAccessLogPublishers()
-  {
-    loggerStorage.removeAllLogPublishers();
-  }
-
-  /**
    * Returns all the registered HTTP access log publishers.
    *
    * @return a Collection of {@link HTTPAccessLogPublisher} objects
@@ -144,4 +110,27 @@
     }
   }
 
+  /** {@inheritDoc} */
+  @Override
+  public final synchronized void addLogPublisher(
+      HTTPAccessLogPublisher<HTTPAccessLogPublisherCfg> publisher)
+  {
+    loggerStorage.addLogPublisher(publisher);
+  }
+
+  /** {@inheritDoc} */
+  @Override
+  public final synchronized boolean removeLogPublisher(
+      HTTPAccessLogPublisher<HTTPAccessLogPublisherCfg> publisher)
+  {
+    return loggerStorage.removeLogPublisher(publisher);
+  }
+
+  /** {@inheritDoc} */
+  @Override
+  public final synchronized void removeAllLogPublishers()
+  {
+    loggerStorage.removeAllLogPublishers();
+  }
+
 }
diff --git a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/loggers/TextDebugLogPublisher.java b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/loggers/TextDebugLogPublisher.java
index fe8f3b8..6d2d86e 100644
--- a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/loggers/TextDebugLogPublisher.java
+++ b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/loggers/TextDebugLogPublisher.java
@@ -344,7 +344,7 @@
   private TraceSettings getDefaultSettings(FileBasedDebugLogPublisherCfg config)
   {
     return new TraceSettings(TraceSettings.Level.getLevel(
-        true,
+        false,
         config.isDefaultDebugExceptionsOnly()),
         config.isDefaultOmitMethodEntryArguments(),
         config.isDefaultOmitMethodReturnValue(),
diff --git a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/tools/BackUpDB.java b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/tools/BackUpDB.java
index 6a02a0c..6d6ab3d 100644
--- a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/tools/BackUpDB.java
+++ b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/tools/BackUpDB.java
@@ -719,14 +719,14 @@
 
       try
       {
-        ErrorLogPublisher<?> errorLogPublisher =
+        ErrorLogPublisher errorLogPublisher =
             TextErrorLogPublisher.getToolStartupTextErrorPublisher(
             new TextWriter.STREAM(out));
-        DebugLogPublisher<?> debugLogPublisher =
+        DebugLogPublisher debugLogPublisher =
             TextDebugLogPublisher.getStartupTextDebugPublisher(
             new TextWriter.STREAM(out));
-        ErrorLogger.addErrorLogPublisher(errorLogPublisher);
-        DebugLogger.addDebugLogPublisher(debugLogPublisher);
+        ErrorLogger.getInstance().addLogPublisher(errorLogPublisher);
+        DebugLogger.getInstance().addLogPublisher(debugLogPublisher);
       }
       catch(Exception e)
       {
diff --git a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/tools/ExportLDIF.java b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/tools/ExportLDIF.java
index 7f5dbc0..2e93546 100644
--- a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/tools/ExportLDIF.java
+++ b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/tools/ExportLDIF.java
@@ -637,14 +637,14 @@
 
       try
       {
-        ErrorLogPublisher<?> errorLogPublisher =
+        ErrorLogPublisher errorLogPublisher =
             TextErrorLogPublisher.getToolStartupTextErrorPublisher(
             new TextWriter.STREAM(out));
-        DebugLogPublisher<?> debugLogPublisher =
+        DebugLogPublisher debugLogPublisher =
             TextDebugLogPublisher.getStartupTextDebugPublisher(
             new TextWriter.STREAM(out));
-        ErrorLogger.addErrorLogPublisher(errorLogPublisher);
-        DebugLogger.addDebugLogPublisher(debugLogPublisher);
+        ErrorLogger.getInstance().addLogPublisher(errorLogPublisher);
+        DebugLogger.getInstance().addLogPublisher(debugLogPublisher);
       }
       catch(Exception e)
       {
diff --git a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/tools/ImportLDIF.java b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/tools/ImportLDIF.java
index 25a5e58..f083040 100644
--- a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/tools/ImportLDIF.java
+++ b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/tools/ImportLDIF.java
@@ -865,10 +865,10 @@
       {
         try
         {
-          ErrorLogPublisher<?> errorLogPublisher =
+          ErrorLogPublisher errorLogPublisher =
               TextErrorLogPublisher.getToolStartupTextErrorPublisher(
                   new TextWriter.STREAM(out));
-          ErrorLogger.addErrorLogPublisher(errorLogPublisher);
+          ErrorLogger.getInstance().addLogPublisher(errorLogPublisher);
         }
         catch(Exception e)
         {
diff --git a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/tools/LDAPConnection.java b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/tools/LDAPConnection.java
index f3f717a..c85c6b2 100644
--- a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/tools/LDAPConnection.java
+++ b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/tools/LDAPConnection.java
@@ -34,6 +34,8 @@
 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 org.forgerock.i18n.LocalizableMessage;
 import org.opends.server.controls.AuthorizationIdentityResponseControl;
@@ -41,8 +43,7 @@
 import org.opends.server.controls.PasswordPolicyErrorType;
 import org.opends.server.controls.PasswordPolicyResponseControl;
 import org.opends.server.controls.PasswordPolicyWarningType;
-import org.opends.server.loggers.DebugLogger;
-import org.opends.server.loggers.TraceSettings;
+import org.opends.server.loggers.JdkLoggingFormater;
 import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.protocols.ldap.ExtendedRequestProtocolOp;
 import org.opends.server.protocols.ldap.ExtendedResponseProtocolOp;
@@ -183,9 +184,10 @@
 
     if(connectionOptions.isVerbose())
     {
-      ConsoleDebugLogPublisher publisher = new ConsoleDebugLogPublisher(err);
-      publisher.addTraceSettings(null, new TraceSettings());
-      DebugLogger.addDebugLogPublisher(publisher);
+      Logger logger = Logger.getLogger("org.opends");
+      ConsoleHandler handler = new ConsoleHandler();
+      handler.setFormatter(new JdkLoggingFormater());
+      logger.addHandler(handler);
     }
 
     if(connectionOptions.useStartTLS())
diff --git a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/tools/ManageTasks.java b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/tools/ManageTasks.java
index bab053b..1b3768b 100644
--- a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/tools/ManageTasks.java
+++ b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/tools/ManageTasks.java
@@ -35,8 +35,7 @@
 import org.opends.server.config.ConfigException;
 import org.opends.server.core.DirectoryServer;
 
-import static org.opends.server.loggers.ErrorLogger.removeErrorLogPublisher;
-
+import org.opends.server.loggers.ErrorLogger;
 import org.opends.server.protocols.asn1.ASN1Exception;
 
 import static org.opends.server.tools.ToolConstants.*;
@@ -95,7 +94,7 @@
     int retCode = mainTaskInfo(args, System.in, System.out, System.err);
 
     if (errorLogPublisher != null) {
-      removeErrorLogPublisher(errorLogPublisher);
+      ErrorLogger.getInstance().removeLogPublisher(errorLogPublisher);
     }
 
     if (retCode != 0) {
diff --git a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/tools/RebuildIndex.java b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/tools/RebuildIndex.java
index 52558b5..c5f14c9 100644
--- a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/tools/RebuildIndex.java
+++ b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/tools/RebuildIndex.java
@@ -402,14 +402,14 @@
   {
     try
     {
-      final ErrorLogPublisher<?> errorLogPublisher =
+      final ErrorLogPublisher errorLogPublisher =
           TextErrorLogPublisher
               .getToolStartupTextErrorPublisher(new TextWriter.STREAM(out));
-      final DebugLogPublisher<?> debugLogPublisher =
+      final DebugLogPublisher debugLogPublisher =
           TextDebugLogPublisher
               .getStartupTextDebugPublisher(new TextWriter.STREAM(out));
-      ErrorLogger.addErrorLogPublisher(errorLogPublisher);
-      DebugLogger.addDebugLogPublisher(debugLogPublisher);
+      ErrorLogger.getInstance().addLogPublisher(errorLogPublisher);
+      DebugLogger.getInstance().addLogPublisher(debugLogPublisher);
     }
     catch (Exception e)
     {
diff --git a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/tools/RestoreDB.java b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/tools/RestoreDB.java
index 59eb54e..451e1ad 100644
--- a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/tools/RestoreDB.java
+++ b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/tools/RestoreDB.java
@@ -463,14 +463,14 @@
 
       try
       {
-        ErrorLogPublisher<?> errorLogPublisher =
+        ErrorLogPublisher errorLogPublisher =
             TextErrorLogPublisher.getToolStartupTextErrorPublisher(
             new TextWriter.STREAM(out));
-        DebugLogPublisher<?> debugLogPublisher =
+        DebugLogPublisher debugLogPublisher =
             TextDebugLogPublisher.getStartupTextDebugPublisher(
             new TextWriter.STREAM(out));
-        ErrorLogger.addErrorLogPublisher(errorLogPublisher);
-        DebugLogger.addDebugLogPublisher(debugLogPublisher);
+        ErrorLogger.getInstance().addLogPublisher(errorLogPublisher);
+        DebugLogger.getInstance().addLogPublisher(debugLogPublisher);
       }
       catch(Exception e)
       {
diff --git a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/tools/VerifyIndex.java b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/tools/VerifyIndex.java
index b741f16..0f59f22 100644
--- a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/tools/VerifyIndex.java
+++ b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/tools/VerifyIndex.java
@@ -370,16 +370,16 @@
 
       try
       {
-        ErrorLogPublisher<?> errorLogPublisher =
+        ErrorLogPublisher errorLogPublisher =
             TextErrorLogPublisher.getToolStartupTextErrorPublisher(
             new TextWriter.STREAM(out));
-        DebugLogPublisher<?> debugLogPublisher =
+        DebugLogPublisher debugLogPublisher =
             TextDebugLogPublisher.getStartupTextDebugPublisher(
             new TextWriter.STREAM(out));
         debugLogPublisher.addTraceSettings(null,
             new TraceSettings());
-        ErrorLogger.addErrorLogPublisher(errorLogPublisher);
-        DebugLogger.addDebugLogPublisher(debugLogPublisher);
+        ErrorLogger.getInstance().addLogPublisher(errorLogPublisher);
+        DebugLogger.getInstance().addLogPublisher(debugLogPublisher);
       }
       catch(Exception e)
       {
diff --git a/opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/TestCaseUtils.java b/opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/TestCaseUtils.java
index 19c86a1..2bb0252 100644
--- a/opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/TestCaseUtils.java
+++ b/opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/TestCaseUtils.java
@@ -41,7 +41,11 @@
 import org.opends.server.admin.client.ldap.LDAPConnection;
 import org.opends.server.admin.client.ldap.LDAPManagementContext;
 import org.opends.server.admin.std.client.RootCfgClient;
+import org.opends.server.api.AccessLogPublisher;
 import org.opends.server.api.Backend;
+import org.opends.server.api.DebugLogPublisher;
+import org.opends.server.api.ErrorLogPublisher;
+import org.opends.server.api.HTTPAccessLogPublisher;
 import org.opends.server.api.WorkQueue;
 import org.opends.server.backends.MemoryBackend;
 import org.opends.server.backends.jeb.*;
@@ -463,21 +467,20 @@
       config.setConfigClass(ConfigFileHandler.class);
       config.setConfigFile(new File(testConfigDir, "config.ldif"));
 
-      AccessLogger.addAccessLogPublisher(
-          TextAccessLogPublisher.getStartupTextAccessPublisher(
-              ACCESS_TEXT_WRITER, false));
+      AccessLogger.getInstance().addLogPublisher(
+          (AccessLogPublisher) TextAccessLogPublisher
+              .getStartupTextAccessPublisher(ACCESS_TEXT_WRITER, false));
 
-      HTTPAccessLogger.addHTTPAccessLogPublisher(TextHTTPAccessLogPublisher
-          .getStartupTextHTTPAccessPublisher(HTTP_ACCESS_TEXT_WRITER));
+      HTTPAccessLogger.getInstance().addLogPublisher(
+          (HTTPAccessLogPublisher) TextHTTPAccessLogPublisher
+              .getStartupTextHTTPAccessPublisher(HTTP_ACCESS_TEXT_WRITER));
 
-      // Use more verbose tool logger.
-      ErrorLogger.addErrorLogPublisher(
-         TextErrorLogPublisher.getToolStartupTextErrorPublisher(
-              ERROR_TEXT_WRITER));
+      // Enable more verbose error logger.
+      ErrorLogger.getInstance().addLogPublisher(
+            (ErrorLogPublisher) TextErrorLogPublisher.getToolStartupTextErrorPublisher(ERROR_TEXT_WRITER));
 
-      DebugLogger.addDebugLogPublisher(
-         TextDebugLogPublisher.getStartupTextDebugPublisher(
-              DEBUG_TEXT_WRITER));
+      DebugLogger.getInstance().addLogPublisher(
+            (DebugLogPublisher) TextDebugLogPublisher.getStartupTextDebugPublisher(DEBUG_TEXT_WRITER));
 
       // Writing the buildinfo with the current version.
       final FileWriter buildInfoWriter = new FileWriter (new File(testConfigDir, "buildinfo"));

--
Gitblit v1.10.0