Package org.apache.commons.logging

# 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 Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected static boolean`
  `jdk14IsAvailable`
  Deprecated.
  Is JDK 1.4 logging available
  `protected static boolean`
  `log4jIsAvailable`
  Deprecated.
  Is Log4j available (in the current classpath)
  `protected static Constructor<?>`
  `logImplctor`
  Deprecated.
  Constructor for current log class
  `protected static Hashtable<String,Log>`
  `logs`
  Deprecated.
  Logs.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static Log`
  `getInstance(Class<?> clazz)`
  Deprecated.
  Gets a `Log` instance by class.
  `static Log`
  `getInstance(String name)`
  Deprecated.
  Gets a `Log` instance by class name.
  `static String[]`
  `getLogNames()`
  Deprecated.
  Returns a `String` array containing the names of all logs known to me.
  `static Log`
  `makeNewLogInstance(String name)`
  Deprecated.
  Create a new `Log` implementation, based on the given name.
  `static void`
  `setLogImplementation(Class<?> logClass)`
  Deprecated.
  Sets the log implementation/log implementation factory by class.
  `static void`
  `setLogImplementation(String className)`
  Deprecated.
  Sets the log implementation/log implementation factory by the name of the class.

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## 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

    protected static boolean jdk14IsAvailable
    Deprecated.
    Is JDK 1.4 logging available

  - ### 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

    public static void setLogImplementation(Class<?> logClass) throws LinkageError, ExceptionInInitializerError, NoSuchMethodException, SecurityException
    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.