Author: michiel
Date: 2010-07-09 15:28:19 +0200 (Fri, 09 Jul 2010)
New Revision: 42841
Modified:
mmbase/trunk/utils/src/main/java/org/mmbase/util/logging/SimpleTimeStampImpl.java
Log:
a bit more configuration possibilities
Modified:
mmbase/trunk/utils/src/main/java/org/mmbase/util/logging/SimpleTimeStampImpl.java
===================================================================
---
mmbase/trunk/utils/src/main/java/org/mmbase/util/logging/SimpleTimeStampImpl.java
2010-07-09 13:27:49 UTC (rev 42840)
+++
mmbase/trunk/utils/src/main/java/org/mmbase/util/logging/SimpleTimeStampImpl.java
2010-07-09 13:28:19 UTC (rev 42841)
@@ -12,6 +12,7 @@
import java.io.PrintStream;
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.CopyOnWriteArrayList;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
@@ -25,10 +26,10 @@
public class SimpleTimeStampImpl extends AbstractSimpleImpl implements Logger {
- private static SimpleTimeStampImpl root = new SimpleTimeStampImpl("");
- private static Map<Level, PrintStream> ps = new HashMap<Level,
PrintStream>();
- static {
+ private Map<Level, PrintStream> ps = new HashMap<Level, PrintStream>();
+
+ {
for (Level l : Level.getLevels()) {
if (l.toInt() >= Level.WARN.toInt()) {
ps.put(l, System.err);
@@ -42,6 +43,11 @@
private static final DateFormat dateFormat = new
SimpleDateFormat("yyyy-MM-dd HH:mm:ss,SSS ");
private static Map<String, SimpleTimeStampImpl> loggers = new
ConcurrentHashMap<String, SimpleTimeStampImpl>();
+ private static SimpleTimeStampImpl root = new SimpleTimeStampImpl("");
+ static {
+ loggers.put("", root);
+ }
+ private static List<Map.Entry<String, String>> configurations = new
CopyOnWriteArrayList<Map.Entry<String, String>>();
private final String name;
@@ -51,6 +57,11 @@
impl = new SimpleTimeStampImpl(name);
impl.level = root.level;
loggers.put(name, impl);
+ for (Map.Entry<String, String> conf : configurations) {
+ if (name.startsWith(conf.getKey())) {
+ impl.conf(conf.getValue());
+ }
+ }
}
return impl;
}
@@ -64,19 +75,12 @@
return ps.get(l);
}
- /**
- * The configure method of this Logger implemenation.
- *
- * @param c A string, which can contain the output (stdout or
- * stderr) and the priority (e.g. 'info')
- */
public static void configure(String c) {
+ configure("", c);
+ }
- if (c == null) {
- return; // everything default
- }
-
+ private void conf(String c) {
StringTokenizer t = new StringTokenizer(c, ",");
while (t.hasMoreTokens()) {
String token = t.nextToken();
@@ -91,29 +95,51 @@
}
}
if (token.equals("trace")) {
- root.setLevel(Level.TRACE);
+ setLevel(Level.TRACE);
}
if (token.equals("debug")) {
- root.setLevel(Level.DEBUG);
+ setLevel(Level.DEBUG);
}
if (token.equals("service")) {
- root.setLevel(Level.SERVICE);
+ setLevel(Level.SERVICE);
}
if (token.equals("info")) {
- root.setLevel(Level.INFO);
+ setLevel(Level.INFO);
}
if (token.equals("warn")) {
- root.setLevel(Level.WARN);
+ setLevel(Level.WARN);
}
if (token.equals("error")) {
- root.setLevel(Level.ERROR);
+ setLevel(Level.ERROR);
}
if (token.equals("fatal")) {
- root.setLevel(Level.FATAL);
+ setLevel(Level.FATAL);
}
}
}
+ /**
+ * The configure method of this Logger implemenation.
+ *
+ * @param c A string, which can contain the output (stdout or
+ * stderr) and the priority (e.g. 'info')
+ */
+
+ public static void configure(String prefix, String c) {
+
+ if (c == null) {
+ return; // everything default
+ }
+ configurations.add(new AbstractMap.SimpleEntry<String, String>(prefix,
c));
+
+ for (Map.Entry<String, SimpleTimeStampImpl> entry :
loggers.entrySet()) {
+ if (entry.getKey().startsWith(prefix)) {
+ SimpleTimeStampImpl logger = entry.getValue();
+ logger.conf(c);
+ }
+ }
+ }
+
@Override
protected final void log (String s, Level l) {
PrintStream stream = getStream(l);
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs