org.apache.commons.logging

## Class LogFactory

- java.lang.Object
- - org.apache.commons.logging.LogFactory

Direct Known Subclasses:
  LogFactoryService

    public abstract class LogFactory
    extends Object

A minimal incarnation of Apache Commons Logging's `LogFactory` API, providing just the common `Log` lookup methods. This is inspired by the JCL-over-SLF4J bridge and should be source as well as binary compatible with all common use of the Commons Logging API (in particular: with `LogFactory.getLog(Class/String)` field initializers).

This implementation does not support Commons Logging's original provider detection. It rather only checks for the presence of the Log4j 2.x API and the SLF4J 1.7 API in the Spring Framework classpath, falling back to `java.util.logging` if none of the two is available. In that sense, it works as a replacement for the Log4j 2 Commons Logging bridge as well as the JCL-over-SLF4J bridge, both of which become irrelevant for Spring-based setups as a consequence (with no need for manual excludes of the standard Commons Logging API jar anymore either). Furthermore, for simple setups without an external logging provider, Spring does not require any extra jar on the classpath anymore since this embedded log factory automatically delegates to `java.util.logging` in such a scenario.

Note that this Commons Logging variant is only meant to be used for infrastructure logging purposes in the core framework and in extensions. It also serves as a common bridge for third-party libraries using the Commons Logging API, e.g. Apache HttpClient, and HtmlUnit, bringing them into the same consistent arrangement without any extra bridge jars.

For logging need in application code, prefer direct use of Log4j 2.x or SLF4J or `java.util.logging`. Simply put Log4j 2.x or Logback (or another SLF4J provider) onto your classpath, without any extra bridges, and let the framework auto-adapt to your choice.

Since:
  5.0
Author:
  Juergen Hoeller (for the `spring-jcl` variant)

### Constructor Summary

Constructors
Constructor and Description
`LogFactory()`

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods
`static LogFactory` `getFactory()` Deprecated. in favor of `getLog(Class)`/`getLog(String)`
`Log` `getInstance(Class<?> clazz)` Deprecated. in favor of `getLog(Class)`
`Log` `getInstance(String name)` Deprecated. in favor of `getLog(String)`
`static Log` `getLog(Class<?> clazz)` Convenience method to return a named logger.
`static Log` `getLog(String name)` Convenience method to return a named logger.

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

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

### Constructor Detail

#### LogFactory

    public LogFactory()

### Method Detail

#### getLog

    public static Log getLog(Class<?> clazz)

Convenience method to return a named logger.

Parameters:
  `clazz` - containing Class from which a log name will be derived

#### getLog

    public static Log getLog(String name)

Convenience method to return a named logger.

Parameters:
  `name` - logical name of the `Log` instance to be returned

#### getFactory

    @Deprecated
    public static LogFactory getFactory()

Deprecated. in favor of `getLog(Class)`/`getLog(String)`
This method only exists for compatibility with unusual Commons Logging API usage like e.g. `LogFactory.getFactory().getInstance(Class/String)`.

See Also:
  `getInstance(Class)`, `getInstance(String)`

#### getInstance

    @Deprecated
    public Log getInstance(Class<?> clazz)

Deprecated. in favor of `getLog(Class)`
Convenience method to return a named logger.

This variant just dispatches straight to `getLog(Class)`.

Parameters:
  `clazz` - containing Class from which a log name will be derived

#### getInstance

    @Deprecated
    public Log getInstance(String name)

Deprecated. in favor of `getLog(String)`
Convenience method to return a named logger.

This variant just dispatches straight to `getLog(String)`.

Parameters:
  `name` - logical name of the `Log` instance to be returned