Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /* 
   * Copyright (c) 2004-2007 QOS.ch
   * All rights reserved.
   * 
   * Permission is hereby granted, free  of charge, to any person obtaining
   * a  copy  of this  software  and  associated  documentation files  (the
   * "Software"), to  deal in  the Software without  restriction, including
   * without limitation  the rights to  use, copy, modify,  merge, publish,
   * distribute,  sublicense, and/or sell  copies of  the Software,  and to
  * permit persons to whom the Software  is furnished to do so, subject to
  * the following conditions:
  * 
  * The  above  copyright  notice  and  this permission  notice  shall  be
  * included in all copies or substantial portions of the Software.
  * 
  * THE  SOFTWARE IS  PROVIDED  "AS  IS", WITHOUT  WARRANTY  OF ANY  KIND,
  * EXPRESS OR  IMPLIED, INCLUDING  BUT NOT LIMITED  TO THE  WARRANTIES OF
  * MERCHANTABILITY,    FITNESS    FOR    A   PARTICULAR    PURPOSE    AND
  * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
  * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
  * OF CONTRACT, TORT OR OTHERWISE,  ARISING FROM, OUT OF OR IN CONNECTION
  * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  */
 
 package org.slf4j;
 
 import java.util.List;
 
The LoggerFactory is a utility class producing Loggers for various logging APIs, most notably for log4j, logback and JDK 1.4 logging. Other implementations such as NOPLogger and SimpleLogger are also supported.

LoggerFactory is essentially a wrapper around an ILoggerFactory instance bound with LoggerFactory at compile time.

Please note that all methods in LoggerFactory are static.

Author(s):
Ceki Gülcü
 
 public final class 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";
   static final String VERSION_MISMATCH = "http://www.slf4j.org/codes.html#version_mismatch";
   static final String SUBSTITUTE_LOGGER_URL = "http://www.slf4j.org/codes.html#substituteLogger";
 
   static private final String EXPECTED_VERSION = "1.5.4";
 
   // private constructor prevents instantiation
   private LoggerFactory() {
   }
 
   static {
     staticInitialize();
   }
 
   private final static void staticInitialize() {
     try {
       // support re-entrant behavior.
       // See also http://bugzilla.slf4j.org/show_bug.cgi?id=106
       List loggerNameList = new ArrayList();
        = new SubstituteLoggerFactory(loggerNameList);
       emitSubstitureLoggerWarning(loggerNameList);
     } catch (NoClassDefFoundError ncde) {
        = null// undo SubstituteLoggerFactory assignment
       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 " + 
             + " for further details.");
 
       }
       throw ncde;
     } catch (Exception e) {
        = null// undo SubstituteLoggerFactory assignment
       // we should never get here
       Util.reportFailure("Failed to instantiate logger ["
           + ..getLoggerFactoryClassStr() + "]"e);
     }
   }
 
   private final static void emitSubstitureLoggerWarning(List loggerNameList) {
     if(loggerNameList.size() == 0) {
       return;
    }
    Util
        .reportFailure("The following loggers will not work becasue they were created");
    Util
        .reportFailure("during the default configuration phase of the underlying logging system.");
    Util.reportFailure("See also " + );
    for (int i = 0; i < loggerNameList.size(); i++) {
      String loggerName = (StringloggerNameList.get(i);
      Util.reportFailure(loggerName);
    }
  }
  private final static void versionSanityCheck() {
    try {
      String actualVer = .;
      if (!.equals(actualVer)) {
        Util.reportFailure("The version " + actualVer
            + " of your slf4j-binding differs from " + 
            + ", the expected version.");
        Util.reportFailure("See " +  + " for further details.");
      }
    } catch (java.lang.NoSuchFieldError nsfe) {
      Util
          .reportFailure("The version of your slf4j-binding is probably older than 1.5.4, and differs from "
              +  + ", the expected version.");
      Util.reportFailure("See " +  + " for further details.");
    } catch (Throwable e) {
      Util
          .reportFailure("An unexpected problem occured while checking the version of your slf4j-binding");
      e.printStackTrace();
    }
  }

  
Return a logger named according to the name parameter using the statically bound ILoggerFactory instance.

Parameters:
name The name of the logger.
Returns:
logger
  public static Logger getLogger(String name) {
    if ( == null) {
      throw new IllegalStateException(
          "Logging factory implementation cannot be null. See also "
              + );
    }
    return .getLogger(name);
  }

  
Return a logger named corresponding to the class passed as parameter, using the statically bound ILoggerFactory instance.

Parameters:
clazz the returned logger will be named after clazz
Returns:
logger
  public static Logger getLogger(Class clazz) {
    if ( == null) {
      throw new IllegalStateException(
          "Logging factory implementation cannot be null. See also "
              + );
    }
    return .getLogger(clazz.getName());
  }

  
Return the ILoggerFactory instance in use.

ILoggerFactory instance is bound with this class at compile time.

Returns:
the ILoggerFactory instance in use
  public static ILoggerFactory getILoggerFactory() {
    return ;
  }
New to GrepCode? Check out our FAQ X