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
This commit is contained in:
parent
1eba7b979a
commit
4eaf03f08e
|
@ -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);
|
||||
}
|
||||
start = msg.length();
|
||||
}
|
||||
else
|
||||
|
|
|
@ -12,16 +12,15 @@
|
|||
// ========================================================================
|
||||
|
||||
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.
|
||||
/**
|
||||
* 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
|
||||
|
@ -38,54 +37,47 @@ import org.eclipse.jetty.util.Loader;
|
|||
*/
|
||||
public class Log
|
||||
{
|
||||
private static final String[] __nestedEx =
|
||||
{"getTargetException","getTargetError","getException","getRootCause"};
|
||||
/*-------------------------------------------------------------------*/
|
||||
private static final Class[] __noArgs=new Class[0];
|
||||
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<Boolean>()
|
||||
AccessController.doPrivileged(new PrivilegedAction<Object>()
|
||||
{
|
||||
public Boolean run()
|
||||
public Object 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,7 +89,7 @@ public class Log
|
|||
initStandardLogging(e);
|
||||
}
|
||||
|
||||
return __log!=null;
|
||||
return __log != null;
|
||||
}
|
||||
|
||||
private static void initStandardLogging(Throwable e)
|
||||
|
@ -105,17 +97,17 @@ public class Log
|
|||
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()
|
||||
|
@ -148,63 +140,61 @@ 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));
|
||||
}
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -212,21 +202,21 @@ public class Log
|
|||
{
|
||||
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()
|
||||
|
@ -240,69 +230,47 @@ public class Log
|
|||
{
|
||||
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);
|
||||
return name == null ? __log : __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){}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
start = msg.length();
|
||||
}
|
||||
else
|
||||
|
|
Loading…
Reference in New Issue