manual repatch of IO merge

git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@8272 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/user/src/com/google/gwt/logging/client/HtmlLogFormatter.java b/user/src/com/google/gwt/logging/client/HtmlLogFormatter.java
index c7d054f..b6012b5 100644
--- a/user/src/com/google/gwt/logging/client/HtmlLogFormatter.java
+++ b/user/src/com/google/gwt/logging/client/HtmlLogFormatter.java
@@ -18,6 +18,7 @@
 
 import java.util.Date;
 import java.util.logging.Formatter;
+import java.util.logging.Level;
 import java.util.logging.LogRecord;
 
 /**
@@ -39,11 +40,14 @@
   protected String getHtmlPrefix(LogRecord event) {
     Date date = new Date(event.getMillis());
     StringBuilder prefix = new StringBuilder();
+    prefix.append("<span style='color:");
+    prefix.append(getColor(event.getLevel().intValue()));
+    prefix.append("'>");
     prefix.append("<code>");
     prefix.append(date.toString());
     prefix.append(" ");
     prefix.append(event.getLoggerName());
-    prefix.append("<br/>");
+    prefix.append(" ");
     prefix.append(event.getLevel().getName());
     prefix.append(": ");
     return prefix.toString();
@@ -51,9 +55,37 @@
   
   protected String getHtmlSuffix(LogRecord event) {
     // TODO(unnurg): output throwables correctly
-    return "</code>";
+    return "</code></span>";
   }
   
+  private String getColor(int logLevel) {
+    if (logLevel == Level.OFF.intValue()) {
+      return "#000"; // black
+    }
+    if (logLevel >= Level.SEVERE.intValue()) {
+      return "#F00"; // bright red
+    }
+    if (logLevel >= Level.WARNING.intValue()) {
+      return "#E56717"; // dark orange
+    }
+    if (logLevel >= Level.INFO.intValue()) {
+      return "#20b000"; // green
+    }
+    if (logLevel >= Level.CONFIG.intValue()) {
+      return "#2B60DE"; // blue
+    }
+    if (logLevel >= Level.FINE.intValue()) {
+      return "#F0F"; // purple
+    }
+    if (logLevel >= Level.FINER.intValue()) {
+      return "#F0F"; // purple
+    }
+    if (logLevel >= Level.FINEST.intValue()) {
+      return "#F0F"; // purple
+    }
+    return "#000"; // black
+  }
+
   // TODO(unnurg): There must be a cleaner way to do this...
   private String getEscapedMessage(LogRecord event) {
     String text = event.getMessage();
@@ -61,4 +93,5 @@
     text = text.replaceAll(">", "&gt;");
     return text;
   }
+
 }
diff --git a/user/src/com/google/gwt/logging/client/LogConfiguration.java b/user/src/com/google/gwt/logging/client/LogConfiguration.java
index fd88112..e08b93a 100644
--- a/user/src/com/google/gwt/logging/client/LogConfiguration.java
+++ b/user/src/com/google/gwt/logging/client/LogConfiguration.java
@@ -98,7 +98,7 @@
       addHandlerIfNotNull(l, firebug);
       Handler system = GWT.create(SystemLogHandler.class);
       addHandlerIfNotNull(l, system);
-      HasWidgets loggingWidget = GWT.create(BasicLoggingPopup.class);
+      HasWidgets loggingWidget = GWT.create(LoggingPopup.class);
       if (!(loggingWidget instanceof NullLoggingPopup)) {
         addHandlerIfNotNull(l, new HasWidgetsLogHandler(loggingWidget));
       }