From 81d36161ce5367fa7aa9a5d99dc8b80eacfa7cdf Mon Sep 17 00:00:00 2001
From: Nicolas Capponi <nicolas.capponi@forgerock.com>
Date: Fri, 24 Jan 2014 14:43:46 +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/ErrorLogger.java |   60 +++++++++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 55 insertions(+), 5 deletions(-)

diff --git a/opendj3-server-dev/src/server/org/opends/server/loggers/ErrorLogger.java b/opendj3-server-dev/src/server/org/opends/server/loggers/ErrorLogger.java
index b1adbcb..1aebaae 100644
--- a/opendj3-server-dev/src/server/org/opends/server/loggers/ErrorLogger.java
+++ b/opendj3-server-dev/src/server/org/opends/server/loggers/ErrorLogger.java
@@ -22,13 +22,14 @@
  *
  *
  *      Copyright 2006-2008 Sun Microsystems, Inc.
- *      Portions copyright 2013 ForgeRock AS
+ *      Portions Copyright 2013-2014 ForgeRock AS
  */
 package org.opends.server.loggers;
 
 import static org.opends.messages.ConfigMessages.*;
 
-import org.opends.messages.Message;
+import org.forgerock.i18n.LocalizableMessage;
+import org.opends.messages.Severity;
 import org.opends.server.admin.ClassPropertyDefinition;
 import org.opends.server.admin.std.meta.ErrorLogPublisherCfgDefn;
 import org.opends.server.admin.std.server.ErrorLogPublisherCfg;
@@ -124,11 +125,29 @@
    *
    * @param  message   The message to be logged.
    */
-  public static void logError(Message message)
+  // TODO : remove
+  public static void logError(LocalizableMessage message)
+  {
+    log("category", Severity.SEVERE_ERROR, message, null);
+  }
+
+  /**
+   * Writes a message to the error log using the provided information.
+   *
+   * @param category
+   *          The category of the message.
+   * @param severity
+   *          The severity of the message.
+   * @param message
+   *          The message to be logged.
+   * @param exception
+   *          The exception to be logged. May be {@code null}.
+   */
+  public static void log(String category, Severity severity, LocalizableMessage message, Throwable exception)
   {
     for (ErrorLogPublisher publisher : loggerStorage.getLogPublishers())
     {
-      publisher.logError(message);
+      publisher.log(category, severity, message, exception);
     }
 
     if (Thread.currentThread() instanceof DirectoryThread)
@@ -137,8 +156,39 @@
       Task task = thread.getAssociatedTask();
       if (task != null)
       {
-        task.addLogMessage(message);
+        task.addLogMessage(severity, message, exception);
       }
     }
   }
+
+  /**
+   * Check if logging is enabled for the provided category and severity.
+   *
+   * @param category
+   *            The category of logging event.
+   * @param severity
+   *            The severity of logging event.
+   * @return {@code true} if logger is enabled
+   */
+  public static boolean isEnabledFor(String category, Severity severity)
+  {
+    if (Thread.currentThread() instanceof DirectoryThread)
+    {
+      DirectoryThread thread = (DirectoryThread) Thread.currentThread();
+      Task task = thread.getAssociatedTask();
+      if (task != null)
+      {
+        return true;
+      }
+    }
+    for (ErrorLogPublisher publisher : loggerStorage.getLogPublishers())
+    {
+      if (publisher.isEnabledFor(category, severity))
+      {
+        return true;
+      }
+    }
+    return false;
+  }
+
 }

--
Gitblit v1.10.0