From 04dfafe19f0d3687d0f0b3e51d2d5bf3d19b58bf Mon Sep 17 00:00:00 2001
From: boli <boli@localhost>
Date: Wed, 07 Mar 2007 23:38:55 +0000
Subject: [PATCH] Enable AspectJ weaving for the new debug logging framework: - This commit does not allow for configuring the debug logger over protocol. It can only be configured on server startup using properties. - The settings specified during startup will remain in effect for the duration of the server. - All messages are printed to standard out. - Weaving could be turned off with the -DDEBUG_BUILD=false property when building the server. - By default, the debug logger is off on server startup. It could be enabled by using the -Dorg.opends.server.debug.enabled=true. - Debug targets may be defined with the -Dorg.opends.server.debug.target property. The syntax of this property can be found on the opends.dev.java.net documentation section. - Debug logging is turned on by default on unit tests and printed on test failure. - Default debug target for unit tests could be changed by using the -Dorg.opends.test.debug.target property.
---
opends/src/server/org/opends/server/loggers/LogCategory.java | 46 +++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 43 insertions(+), 3 deletions(-)
diff --git a/opends/src/server/org/opends/server/loggers/LogCategory.java b/opends/src/server/org/opends/server/loggers/LogCategory.java
index e28fc76..df42e4e 100644
--- a/opends/src/server/org/opends/server/loggers/LogCategory.java
+++ b/opends/src/server/org/opends/server/loggers/LogCategory.java
@@ -26,12 +26,17 @@
*/
package org.opends.server.loggers;
+import java.util.ArrayList;
+
/**
* The category class defines a set of standard logging types that
* can be used to control logging output.
*/
-public abstract class LogCategory
+public class LogCategory
{
+ private static ArrayList<LogCategory> known = new ArrayList<LogCategory>();
+
+
/**
* The non-localized name of the type.
*/
@@ -42,13 +47,15 @@
* <p>
* Note that this constructor is "protected" to allow subclassing.
*
- * @param name the name of the Level, for example "SEVERE".
+ * @param name the name of the category, for example "MESSAGE".
*/
protected LogCategory(String name) {
if (name == null) {
throw new NullPointerException();
}
this.name = name;
+
+ known.add(this);
}
/**
@@ -63,9 +70,42 @@
/**
* Retrieves the string reprentation of this log category.
*
- * @return the non-localized name of the Level, for example "INFO".
+ * @return the non-localized name of the LogCategory, for example "ENTRY".
*/
public final String toString() {
return name;
}
+
+ /**
+ * Parse a category name string into a LogCategory.
+ * <p>
+ * For example:
+ * <ul>
+ * <li> "EXIT"
+ * <li> "caught"
+ * </ul>
+ * @param name string to be parsed
+ * @throws IllegalArgumentException if the value is not valid.
+ * Known names are the categories defined by this class or created
+ * by this class with appropriate package access, or new levels defined
+ * or created by subclasses.
+ *
+ * @return The parsed category
+ */
+ public static synchronized LogCategory parse(String name)
+ throws IllegalArgumentException {
+ // Check that name is not null.
+ name.length();
+
+ // Look for a known Level with the given name.
+ for (int i = 0; i < known.size(); i++) {
+ LogCategory c = known.get(i);
+ if (name.equalsIgnoreCase(c.name)) {
+ return c;
+ }
+ }
+
+ // OK, we've tried everything and failed
+ throw new IllegalArgumentException("Bad category \"" + name + "\"");
+ }
}
--
Gitblit v1.10.0