You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by sk...@apache.org on 2006/04/16 14:15:30 UTC
svn commit: r394467 -
/jakarta/commons/proper/logging/trunk/src/java/org/apache/commons/logging/impl/LogFactoryImpl.java
Author: skitching
Date: Sun Apr 16 05:15:30 2006
New Revision: 394467
URL: http://svn.apache.org/viewcvs?rev=394467&view=rev
Log:
Improve diagnostics
Modified:
jakarta/commons/proper/logging/trunk/src/java/org/apache/commons/logging/impl/LogFactoryImpl.java
Modified: jakarta/commons/proper/logging/trunk/src/java/org/apache/commons/logging/impl/LogFactoryImpl.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/logging/trunk/src/java/org/apache/commons/logging/impl/LogFactoryImpl.java?rev=394467&r1=394466&r2=394467&view=diff
==============================================================================
--- jakarta/commons/proper/logging/trunk/src/java/org/apache/commons/logging/impl/LogFactoryImpl.java (original)
+++ jakarta/commons/proper/logging/trunk/src/java/org/apache/commons/logging/impl/LogFactoryImpl.java Sun Apr 16 05:15:30 2006
@@ -20,6 +20,7 @@
import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
+import java.net.URL;
import java.util.Enumeration;
import java.util.Hashtable;
import java.util.Vector;
@@ -682,32 +683,41 @@
if (isDiagnosticsEnabled()) {
logDiagnostic("[ENV] Trying to get configuration for item " + property);
}
- if (isDiagnosticsEnabled()) {
- logDiagnostic("[ENV] Looking for attribute " + property);
- }
+
Object valueObj = getAttribute(property);
if (valueObj != null) {
if (isDiagnosticsEnabled()) {
- logDiagnostic("[ENV] Found value [" + valueObj + "] for " + property);
+ logDiagnostic("[ENV] Found LogFactory attribute [" + valueObj + "] for " + property);
}
return valueObj.toString();
}
if (isDiagnosticsEnabled()) {
- logDiagnostic("[ENV] Looking for system property " + property);
+ logDiagnostic("[ENV] No LogFactory attribute found for " + property);
}
+
try {
String value = System.getProperty(property);
+ if (value != null) {
+ if (isDiagnosticsEnabled()) {
+ logDiagnostic("[ENV] Found system property [" + value + "] for " + property);
+ }
+ return value;
+ }
+
if (isDiagnosticsEnabled()) {
- logDiagnostic("[ENV] Found value [" + value + "] for " + property);
+ logDiagnostic("[ENV] No system property found for property " + property);
}
- return value;
} catch (SecurityException e) {
if (isDiagnosticsEnabled()) {
- logDiagnostic("[ENV] Security prevented reading system property.");
+ logDiagnostic("[ENV] Security prevented reading system property " + property);
}
}
-
+
+ if (isDiagnosticsEnabled()) {
+ logDiagnostic("[ENV] No configuration defined for item " + property);
+ }
+
return null;
}
@@ -749,7 +759,7 @@
throws LogConfigurationException
{
if (isDiagnosticsEnabled()) {
- logDiagnostic("Attempting to discover a Log implementation...");
+ logDiagnostic("Discovering a Log implementation...");
}
initConfiguration();
@@ -760,6 +770,11 @@
String specifiedLogClassName = findUserSpecifiedLogClassName();
if (specifiedLogClassName != null) {
+ if (isDiagnosticsEnabled()) {
+ logDiagnostic("Attempting to load user-specified log class '" +
+ specifiedLogClassName + "'...");
+ }
+
result = createLogFromClass(specifiedLogClassName,
logCategory,
true);
@@ -812,6 +827,11 @@
// service file in META-INF to force use of that logging lib anyway,
// rather than relying on discovery.
+ if (isDiagnosticsEnabled()) {
+ logDiagnostic(
+ "No user-specified Log implementation; performing discovery" +
+ " using the standard supported logging implementations...");
+ }
for(int i=0; (i<classesToDiscover.length) && (result == null); ++i) {
result = createLogFromClass(classesToDiscover[i], logCategory, true);
}
@@ -946,6 +966,35 @@
+ "' from classloader "
+ objectId(currentCL));
try {
+ if (isDiagnosticsEnabled()) {
+ // show exactly where we are loading this class from.
+ URL url;
+ String resourceName = logAdapterClassName.replace('.', '/') + ".class";
+ if (currentCL != null) {
+ url = currentCL.getResource(resourceName );
+ } else {
+ url = ClassLoader.getSystemResource(resourceName + ".class");
+ }
+
+ if (url == null) {
+ logDiagnostic("Class '" + logAdapterClassName + "' [" + resourceName + "] cannot be found.");
+ } else {
+ logDiagnostic("Class '" + logAdapterClassName + "' was found at '" + url + "'");
+ }
+ }
+
+ // hack
+ {
+ String l4jCategory = "org.apache.log4j.Category";
+ String l4jResource = l4jCategory.replace('.', '/') + ".class";
+ URL l4jUrl = currentCL.getResource(l4jResource);
+ if (l4jUrl == null) {
+ logDiagnostic("log4j not found:" + l4jResource);
+ } else {
+ logDiagnostic("log4j found:" + l4jUrl);
+ }
+ }
+
Class c = null;
try {
c = Class.forName(logAdapterClassName, true, currentCL);
---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org