From 5d1a7f43aa3104bd4047839897a65066c555f7a9 Mon Sep 17 00:00:00 2001
From: Nicolas Capponi <nicolas.capponi@forgerock.com>
Date: Thu, 13 Feb 2014 13:00:25 +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/DebugLogger.java | 44 ++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 44 insertions(+), 0 deletions(-)
diff --git a/opendj3-server-dev/src/server/org/opends/server/loggers/DebugLogger.java b/opendj3-server-dev/src/server/org/opends/server/loggers/DebugLogger.java
index 4d343df..78311a6 100644
--- a/opendj3-server-dev/src/server/org/opends/server/loggers/DebugLogger.java
+++ b/opendj3-server-dev/src/server/org/opends/server/loggers/DebugLogger.java
@@ -27,8 +27,11 @@
package org.opends.server.loggers;
import static org.opends.messages.ConfigMessages.*;
+import static org.opends.server.util.ServerConstants.*;
+import java.util.ArrayList;
import java.util.Collection;
+import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
@@ -149,6 +152,47 @@
return tracer;
}
+ /**
+ * Adds a text debug log publisher that will print all messages to the
+ * provided writer, based on debug target(s) defined through system
+ * properties.
+ * <p>
+ * It is expected that one or more system properties beginning with
+ * {@code PROPERTY_DEBUG_TARGET} are set to define the properties of the debug
+ * targets used by the publisher, otherwise no publisher is added.
+ *
+ * @param writer
+ * The text writer where the message will be written to.
+ * @return the publisher. It may be {@code null} if no publisher is added.
+ */
+ @SuppressWarnings({ "unchecked", "rawtypes" })
+ public final TextDebugLogPublisher addPublisherIfRequired(TextWriter writer)
+ {
+ final List<String> debugTargets = getDebugTargetsFromSystemProperties();
+ TextDebugLogPublisher publisher = null;
+ if (!debugTargets.isEmpty())
+ {
+ publisher = TextDebugLogPublisher.getStartupTextDebugPublisher(debugTargets, writer);
+ if (publisher != null) {
+ addLogPublisher((DebugLogPublisher) publisher);
+ }
+ }
+ return publisher;
+ }
+
+ private List<String> getDebugTargetsFromSystemProperties()
+ {
+ final List<String> targets = new ArrayList<String>();
+ for (Map.Entry<Object, Object> entry : System.getProperties().entrySet())
+ {
+ if (((String) entry.getKey()).startsWith(PROPERTY_DEBUG_TARGET))
+ {
+ targets.add((String)entry.getValue());
+ }
+ }
+ return targets;
+ }
+
/** {@inheritDoc} */
@Override
public final synchronized void addLogPublisher(
--
Gitblit v1.10.0