[slf4j-dev] svn commit: r803 - in slf4j/trunk/slf4j-api/src/main/java/org/slf4j: . helpers

ceki at slf4j.org ceki at slf4j.org
Fri May 4 17:43:02 CEST 2007


Author: ceki
Date: Fri May  4 17:43:02 2007
New Revision: 803

Modified:
   slf4j/trunk/slf4j-api/src/main/java/org/slf4j/LoggerFactory.java
   slf4j/trunk/slf4j-api/src/main/java/org/slf4j/helpers/Util.java

Log:
better error reporting when no bindign is available

Modified: slf4j/trunk/slf4j-api/src/main/java/org/slf4j/LoggerFactory.java
==============================================================================
--- slf4j/trunk/slf4j-api/src/main/java/org/slf4j/LoggerFactory.java	(original)
+++ slf4j/trunk/slf4j-api/src/main/java/org/slf4j/LoggerFactory.java	Fri May  4 17:43:02 2007
@@ -47,6 +47,9 @@
 
   static ILoggerFactory loggerFactory;
 
+  static final String NO_STATICLOGGERBINDER_URL = "http://www.slf4j.org/codes.html#StaticLoggerBinder";
+  static final String NULL_LF_URL = "http://www.slf4j.org/codes.html#null_LF";
+    
   // private constructor prevents instantiation
   private LoggerFactory() {
   }
@@ -55,6 +58,14 @@
   static {
     try { 
       loggerFactory = StaticLoggerBinder.SINGLETON.getLoggerFactory();
+    } catch(NoClassDefFoundError ncde) {
+      String msg = ncde.getMessage();
+      if(msg != null && msg.indexOf("org/slf4j/impl/StaticLoggerBinder") != -1) {
+        Util.reportFailure("Failed to load class \"org.slf4j.impl.StaticLoggerBinder\".");
+        Util.reportFailure("See "+NO_STATICLOGGERBINDER_URL+" for further details.");
+        
+      } 
+      throw ncde;
     } catch (Exception e) {
       // we should never get here
       Util.reportFailure("Failed to instantiate logger ["
@@ -72,7 +83,7 @@
    */
   public static Logger getLogger(String name) {
     if(loggerFactory == null) {
-      throw new IllegalStateException("Logging factory implementation cannot be null. See also http://www.slf4j.org/codes.html#null_LF");
+      throw new IllegalStateException("Logging factory implementation cannot be null. See also "+NULL_LF_URL);
     }
     return loggerFactory.getLogger(name);
   }

Modified: slf4j/trunk/slf4j-api/src/main/java/org/slf4j/helpers/Util.java
==============================================================================
--- slf4j/trunk/slf4j-api/src/main/java/org/slf4j/helpers/Util.java	(original)
+++ slf4j/trunk/slf4j-api/src/main/java/org/slf4j/helpers/Util.java	Fri May  4 17:43:02 2007
@@ -38,4 +38,8 @@
     System.err.println("Reported exception:");
     t.printStackTrace();
   }
+  
+  static final public void reportFailure(String msg) {
+    System.err.println("SLF4J: " +msg);
+  }
 }



More information about the slf4j-dev mailing list