Class LogSource

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

@Deprecated 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().
  • Field Details

    • logs

      protected static Hashtable<String,Log> logs
      Deprecated.
      Logs.
    • log4jIsAvailable

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

      @Deprecated protected static boolean jdk14IsAvailable
      Deprecated.
      Java 8 is the baseline and includes JUL.
      Is JDK 1.4 logging available, always true.
    • logImplctor

      protected static Constructor<?> logImplctor
      Deprecated.
      Constructor for current log class
  • Method Details

    • getInstance

      public static Log getInstance(Class<?> clazz)
      Deprecated.
      Gets a Log instance by class.
      Parameters:
      clazz - a Class.
      Returns:
      a Log instance.
    • getInstance

      public static Log getInstance(String name)
      Deprecated.
      Gets a Log instance by class name.
      Parameters:
      name - Class name.
      Returns:
      a Log instance.
    • getLogNames

      public static String[] getLogNames()
      Deprecated.
      Returns a String array containing the names of all logs known to me.
      Returns:
      a String array containing the names of all logs known to me.
    • 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)
      Returns:
      a new instance.
    • setLogImplementation

      Deprecated.
      Sets 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).
      Parameters:
      logClass - class.
      Throws:
      LinkageError - if there is missing dependency.
      ExceptionInInitializerError - unexpected exception has occurred in a static initializer.
      NoSuchMethodException - if a matching method is not found.
      SecurityException - If a security manager, s, is present and the caller's class loader is not the same as or an ancestor of the class loader for the current class and invocation of s.checkPackageAccess() denies access to the package of this class.
    • setLogImplementation

      public static void setLogImplementation(String className) throws LinkageError, SecurityException
      Deprecated.
      Sets 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).
      Parameters:
      className - class name.
      Throws:
      LinkageError - if there is missing dependency.
      SecurityException - If a security manager, s, is present and the caller's class loader is not the same as or an ancestor of the class loader for the current class and invocation of s.checkPackageAccess() denies access to the package of this class.