Class LogSource

java.lang.Object
org.apache.commons.logging.LogSource

public class LogSource extends Object
Deprecated.
Use LogFactory instead - The default factory implementation performs exactly the same algorithm as this class did
Factory for creating Log instances. Applications should call the makeNewLogInstance() method to instantiate new instances of the configured Log implementation class.

By default, calling getInstance() will use the following algorithm:

  • If Log4J is available, return an instance of org.apache.commons.logging.impl.Log4JLogger.
  • If JDK 1.4 or later is available, return an instance of org.apache.commons.logging.impl.Jdk14Logger.
  • Otherwise, return an instance of org.apache.commons.logging.impl.NoOpLog.

You can change the default behavior in one of two ways:

  • On the startup command line, set the system property org.apache.commons.logging.log to the name of the org.apache.commons.logging.Log implementation class you want to use.
  • At runtime, call LogSource.setLogImplementation().
Version:
$Id: LogSource.java 1432675 2013-01-13 17:53:30Z tn $
  • Field Details

    • logs

      protected static Hashtable logs
      Deprecated.
    • log4jIsAvailable

      protected static boolean log4jIsAvailable
      Deprecated.
      Is log4j available (in the current classpath)
    • jdk14IsAvailable

      protected static boolean jdk14IsAvailable
      Deprecated.
      Is JDK 1.4 logging available
    • logImplctor

      protected static Constructor logImplctor
      Deprecated.
      Constructor for current log class
  • Constructor Details

    • LogSource

      private LogSource()
      Deprecated.
      Don't allow others to create instances.
  • Method Details

    • setLogImplementation

      public static void setLogImplementation(String classname) throws LinkageError, NoSuchMethodException, SecurityException, ClassNotFoundException
      Deprecated.
      Set the log implementation/log implementation factory by the name of the class. The given class must implement Log, and provide a constructor that takes a single String argument (containing the name of the log).
      Throws:
      LinkageError
      NoSuchMethodException
      SecurityException
      ClassNotFoundException
    • setLogImplementation

      public static void setLogImplementation(Class logclass) throws LinkageError, ExceptionInInitializerError, NoSuchMethodException, SecurityException
      Deprecated.
      Set the log implementation/log implementation factory by class. The given class must implement Log, and provide a constructor that takes a single String argument (containing the name of the log).
      Throws:
      LinkageError
      ExceptionInInitializerError
      NoSuchMethodException
      SecurityException
    • getInstance

      public static Log getInstance(String name)
      Deprecated.
      Get a Log instance by class name.
    • getInstance

      public static Log getInstance(Class clazz)
      Deprecated.
      Get a Log instance by class.
    • makeNewLogInstance

      public static Log makeNewLogInstance(String name)
      Deprecated.
      Create a new Log implementation, based on the given name.

      The specific Log implementation returned is determined by the value of the org.apache.commons.logging.log property. The value of org.apache.commons.logging.log may be set to the fully specified name of a class that implements the Log interface. This class must also have a public constructor that takes a single String argument (containing the name of the Log to be constructed.

      When org.apache.commons.logging.log is not set, or when no corresponding class can be found, this method will return a Log4JLogger if the log4j Logger class is available in the LogSource's classpath, or a Jdk14Logger if we are on a JDK 1.4 or later system, or NoOpLog if neither of the above conditions is true.

      Parameters:
      name - the log name (or category)
    • getLogNames

      public static String[] getLogNames()
      Deprecated.
      Returns a String array containing the names of all logs known to me.