From 4eaf03f08eab0b8d18c923cc88cddb181aaa7051 Mon Sep 17 00:00:00 2001 From: Simone Bordet Date: Tue, 27 Apr 2010 14:08:48 +0000 Subject: [PATCH] Additional fix for #310603: Log cleanup. git-svn-id: svn+ssh://dev.eclipse.org/svnroot/rt/org.eclipse.jetty/jetty/trunk@1592 7e9141cc-0065-0410-87d8-b60c137991c4 --- .../eclipse/jetty/util/log/JavaUtilLog.java | 7 +- .../java/org/eclipse/jetty/util/log/Log.java | 208 ++++++++---------- .../org/eclipse/jetty/util/log/StdErrLog.java | 7 +- 3 files changed, 92 insertions(+), 130 deletions(-) diff --git a/jetty-util/src/main/java/org/eclipse/jetty/util/log/JavaUtilLog.java b/jetty-util/src/main/java/org/eclipse/jetty/util/log/JavaUtilLog.java index 464ed52d1df..19ecf110395 100644 --- a/jetty-util/src/main/java/org/eclipse/jetty/util/log/JavaUtilLog.java +++ b/jetty-util/src/main/java/org/eclipse/jetty/util/log/JavaUtilLog.java @@ -126,11 +126,8 @@ public class JavaUtilLog implements Logger if (bracesIndex < 0) { builder.append(msg.substring(start)); - if (arg != null) - { - builder.append(" "); - builder.append(arg); - } + builder.append(" "); + builder.append(arg); start = msg.length(); } else diff --git a/jetty-util/src/main/java/org/eclipse/jetty/util/log/Log.java b/jetty-util/src/main/java/org/eclipse/jetty/util/log/Log.java index 775fcd54a15..0eeab95c863 100644 --- a/jetty-util/src/main/java/org/eclipse/jetty/util/log/Log.java +++ b/jetty-util/src/main/java/org/eclipse/jetty/util/log/Log.java @@ -4,25 +4,24 @@ // All rights reserved. This program and the accompanying materials // are made available under the terms of the Eclipse Public License v1.0 // and Apache License v2.0 which accompanies this distribution. -// The Eclipse Public License is available at +// The Eclipse Public License is available at // http://www.eclipse.org/legal/epl-v10.html // The Apache License v2.0 is available at // http://www.opensource.org/licenses/apache2.0.php -// You may elect to redistribute this code under either of these licenses. +// You may elect to redistribute this code under either of these licenses. // ======================================================================== package org.eclipse.jetty.util.log; + import java.lang.reflect.Method; import java.security.AccessController; import java.security.PrivilegedAction; import org.eclipse.jetty.util.Loader; - - -/*-----------------------------------------------------------------------*/ -/** Logging. - * This class provides a static logging interface. If an instance of the +/** + * Logging. + * This class provides a static logging interface. If an instance of the * org.slf4j.Logger class is found on the classpath, the static log methods * are directed to a slf4j logger for "org.eclipse.log". Otherwise the logs * are directed to stderr. @@ -30,62 +29,55 @@ import org.eclipse.jetty.util.Loader; * The "org.eclipse.jetty.util.log.class" system property can be used * to select a specific logging implementation. *

- * If the system property org.eclipse.jetty.util.log.IGNORED is set, + * If the system property org.eclipse.jetty.util.log.IGNORED is set, * then ignored exceptions are logged in detail. - * + * * @see StdErrLog * @see Slf4jLog */ -public class Log -{ - private static final String[] __nestedEx = - {"getTargetException","getTargetError","getException","getRootCause"}; - /*-------------------------------------------------------------------*/ - private static final Class[] __noArgs=new Class[0]; +public class Log +{ public final static String EXCEPTION= "EXCEPTION "; public final static String IGNORED= "IGNORED"; - public final static String IGNORED_FMT= "IGNORED: {}"; - public final static String NOT_IMPLEMENTED= "NOT IMPLEMENTED "; - + public static String __logClass; public static boolean __ignored; - + static { - AccessController.doPrivileged(new PrivilegedAction() + AccessController.doPrivileged(new PrivilegedAction() + { + public Object run() { - public Boolean run() - { - __logClass = System.getProperty("org.eclipse.jetty.util.log.class","org.eclipse.jetty.util.log.Slf4jLog"); - __ignored = Boolean.parseBoolean(System.getProperty("org.eclipse.jetty.util.log.IGNORED","false")); - return true; - } - }); + __logClass = System.getProperty("org.eclipse.jetty.util.log.class", "org.eclipse.jetty.util.log.Slf4jLog"); + __ignored = Boolean.parseBoolean(System.getProperty("org.eclipse.jetty.util.log.IGNORED", "false")); + return null; + } + }); } - + private static Logger __log; - private static boolean _initialized; - + private static boolean __initialized; + public static boolean initialized() { - if (__log!=null) + if (__log != null) return true; - + synchronized (Log.class) { - if (_initialized) - return __log!=null; - _initialized=true; + if (__initialized) + return __log != null; + __initialized = true; } - - Class log_class=null; + try { - log_class=Loader.loadClass(Log.class, __logClass); - if (__log==null || !__log.getClass().equals(log_class)) + Class log_class = Loader.loadClass(Log.class, __logClass); + if (__log == null || !__log.getClass().equals(log_class)) { - __log=(Logger) log_class.newInstance(); - __log.info("Logging to {} via {}",__log,log_class.getName()); + __log = (Logger)log_class.newInstance(); + __log.info("Logging to {} via {}", __log, log_class.getName()); } } catch(NoClassDefFoundError e) @@ -97,34 +89,34 @@ public class Log initStandardLogging(e); } - return __log!=null; + return __log != null; } - private static void initStandardLogging(Throwable e) + private static void initStandardLogging(Throwable e) { Class log_class; if(e != null && __ignored) e.printStackTrace(); - if (__log==null) + if (__log == null) { - log_class= StdErrLog.class; - __log=new StdErrLog(); - __log.info("Logging to {} via {}",__log,log_class.getName()); + log_class = StdErrLog.class; + __log = new StdErrLog(); + __log.info("Logging to {} via {}", __log, log_class.getName()); } } public static void setLog(Logger log) { - Log.__log=log; + Log.__log = log; } - + public static Logger getLog() { initialized(); return __log; } - + /** * Set Log to parent Logger. *

@@ -132,12 +124,12 @@ public class Log * call {@link #getLogger(String)} on it and construct a {@link LoggerLog} instance * as this Log's Logger, so that logging is delegated to the parent Log. *

- * This should be used if a webapp is using Log, but wishes the logging to be + * This should be used if a webapp is using Log, but wishes the logging to be * directed to the containers log. *

* If there is not parent Log, then this call is equivalent to

      *   Log.setLog(Log.getLogger(name));
-     * 
+ * * @param name Logger name */ public static void setLogToParent(String name) @@ -148,161 +140,137 @@ public class Log try { Class uberlog = loader.getParent().loadClass("org.eclipse.jetty.util.log.Log"); - Method getLogger=uberlog.getMethod("getLogger",new Class[]{String.class}); + Method getLogger = uberlog.getMethod("getLogger", new Class[]{String.class}); Object logger = getLogger.invoke(null,name); setLog(new LoggerLog(logger)); - return; } catch (Exception e) { e.printStackTrace(); - } + } + } + else + { + setLog(getLogger(name)); } - - setLog(getLogger(name)); } - + public static void debug(Throwable th) - { + { if (!isDebugEnabled()) return; - __log.debug(EXCEPTION,th); - unwind(th); + __log.debug(EXCEPTION, th); } public static void debug(String msg) { if (!initialized()) return; - - __log.debug(msg,null,null); + __log.debug(msg); } - - public static void debug(String msg,Object arg) + + public static void debug(String msg, Object arg) { if (!initialized()) return; - __log.debug(msg,arg,null); + __log.debug(msg, arg); } - - public static void debug(String msg,Object arg0, Object arg1) + + public static void debug(String msg, Object arg0, Object arg1) { if (!initialized()) return; - __log.debug(msg,arg0,arg1); + __log.debug(msg, arg0, arg1); } - - /* ------------------------------------------------------------ */ + /** * Ignore an exception unless trace is enabled. * This works around the problem that log4j does not support the trace level. + * @param thrown the Throwable to ignore */ - public static void ignore(Throwable th) + public static void ignore(Throwable thrown) { if (!initialized()) return; if (__ignored) { - __log.warn(IGNORED,th); - unwind(th); + __log.warn(IGNORED, thrown); } } - + public static void info(String msg) { if (!initialized()) return; - __log.info(msg,null,null); + __log.info(msg); } - - public static void info(String msg,Object arg) + + public static void info(String msg, Object arg) { if (!initialized()) return; - __log.info(msg,arg,null); + __log.info(msg, arg); } - - public static void info(String msg,Object arg0, Object arg1) + + public static void info(String msg, Object arg0, Object arg1) { if (!initialized()) return; - __log.info(msg,arg0,arg1); + __log.info(msg, arg0, arg1); } - + public static boolean isDebugEnabled() { if (!initialized()) return false; return __log.isDebugEnabled(); } - + public static void warn(String msg) { if (!initialized()) return; - __log.warn(msg,null,null); + __log.warn(msg); } - - public static void warn(String msg,Object arg) + + public static void warn(String msg, Object arg) { if (!initialized()) return; - __log.warn(msg,arg,null); + __log.warn(msg, arg); } - - public static void warn(String msg,Object arg0, Object arg1) + + public static void warn(String msg, Object arg0, Object arg1) { if (!initialized()) return; - __log.warn(msg,arg0,arg1); + __log.warn(msg, arg0, arg1); } - + public static void warn(String msg, Throwable th) { if (!initialized()) return; - __log.warn(msg,th); - unwind(th); + __log.warn(msg, th); } public static void warn(Throwable th) { if (!initialized()) return; - __log.warn(EXCEPTION,th); - unwind(th); + __log.warn(EXCEPTION, th); } - /** Obtain a named Logger. + /** * Obtain a named Logger or the default Logger if null is passed. + * @param name the Logger name + * @return the Logger with the given name */ public static Logger getLogger(String name) { if (!initialized()) return null; - - if (name==null) - return __log; - return __log.getLogger(name); - } - private static void unwind(Throwable th) - { - if (th==null) - return; - for (int i=0;i<__nestedEx.length;i++) - { - try - { - Method get_target = th.getClass().getMethod(__nestedEx[i],__noArgs); - Throwable th2=(Throwable)get_target.invoke(th,(Object[])null); - if (th2!=null && th2!=th) - warn("Nested in "+th+":",th2); - } - catch(Exception ignore){} - } + return name == null ? __log : __log.getLogger(name); } - - } - diff --git a/jetty-util/src/main/java/org/eclipse/jetty/util/log/StdErrLog.java b/jetty-util/src/main/java/org/eclipse/jetty/util/log/StdErrLog.java index 7608dd91641..caad9664531 100644 --- a/jetty-util/src/main/java/org/eclipse/jetty/util/log/StdErrLog.java +++ b/jetty-util/src/main/java/org/eclipse/jetty/util/log/StdErrLog.java @@ -197,11 +197,8 @@ public class StdErrLog implements Logger if (bracesIndex < 0) { escape(builder, msg.substring(start)); - if (arg != null) - { - builder.append(" "); - builder.append(arg); - } + builder.append(" "); + builder.append(arg); start = msg.length(); } else