2003/12/31 23:53:46
[org.ibex.core.git] / src / org / xwt / util / Log.java
index e536252..bb690b2 100644 (file)
@@ -24,6 +24,7 @@ public class Log {
 
     /** message can be a String or a Throwable */
     public static synchronized void echo(Object o, Object message) { log(o, message, ECHO); }
+    public static synchronized void diag(Object o, Object message) { log(o, message, DIAGNOSTIC); }
     public static synchronized void debug(Object o, Object message) { log(o, message, DEBUG); }
     public static synchronized void info(Object o, Object message) { log(o, message, INFO); }
     public static synchronized void warn(Object o, Object message) { log(o, message, WARN); }
@@ -49,6 +50,7 @@ public class Log {
     private static final int GRAY = 37;
 
     private static String color(int color, boolean bright, String s) {
+        if (!Log.color) return s;
         return
             "" + ((char)27) + "[" + (bright?1:0) + ";" + color + "m" +
             s +
@@ -59,14 +61,14 @@ public class Log {
     private static synchronized void log(Object o, Object message, int level) {
         if (firstMessage && !logDates) {
             firstMessage = false;
-            System.err.println("===========================================================================");
-            String incolor = color ? "in " +
+            System.err.println(color(GREEN, false, "==========================================================================="));
+            diag(Log.class, "Logging enabled at " + new java.util.Date());
+            if (color) diag(Log.class, "logging messages in " +
                 color(BLUE, true, "c") +
                 color(RED, true, "o") +
                 color(CYAN, true, "l") +
                 color(GREEN, true, "o") +
-                color(PURPLE, true, "r") + " " : "";
-            log(Log.class, "Logging enabled at " + new java.util.Date() + " " + incolor);
+                color(PURPLE, true, "r"));
         }
 
         String classname;
@@ -82,6 +84,7 @@ public class Log {
         while (classname.length() < (logDates ? 14 : 20)) classname = " " + classname;
         classname = classname + (classname.trim().length() == 0 ? "  " : ": ");
         classname = color(GRAY, true, classname);
+        classname = classname.replace('$', '.');
 
         if (logDates) {
             Date d = new Date();
@@ -106,7 +109,7 @@ public class Log {
             try {
                 String m = "";
                 while((s = br.readLine()) != null) m += s + "\n";
-                log(o, m, level);
+                log(o, m.substring(0, m.length() - 1), level);
             } catch (IOException e) {
                 System.err.println(color(RED, true, "Logger: exception thrown by ByteArrayInputStream -- this should not happen"));
             }