Here are the two classes I ended up using:
import java.util.Date;
import java.util.logging.LogRecord;
import com.google.gwt.logging.impl.FormatterImpl;
public class LogFormatter extends FormatterImpl {
private static final StringBuilder sb = new StringBuilder();
@Override
public String format(LogRecord rec) {
    synchronized (sb) {
        sb.setLength(0);
        sb.append(new Date(rec.getMillis()).toString());
        sb.append(": ");
        sb.append(rec.getMessage());
        sb.append("\n");
        return sb.toString();
    }
}
}
import java.util.logging.Handler;
import java.util.logging.Level;
import java.util.logging.Logger;
public class ALog {
/* IMPORTANT: User blank string (root logger) here or else it WILL NOT have the    formatter being used */
private static final Logger logger = Logger.getLogger("");
static {
    for (Handler handler : logger.getHandlers()) {
        handler.setFormatter(new LogFormatter());
        handler.setLevel(Level.ALL);
    }
}
public static void log(String msg) {
    logger.log(Level.INFO, msg);
}
public static void log(String msg, Throwable e) {
    logger.log(Level.INFO, msg, e);
}
}