Apache Commons logo Commons Logging

The Logging Component

When writing a library it is very useful to log information. However there are many logging implementations out there, and a library cannot impose the use of a particular one on the overall application that the library is a part of.

The Logging package is an ultra-thin bridge between different logging implementations. A library that uses the commons-logging API can be used with any logging implementation at runtime. Commons Logging comes with support for a number of popular logging implementations, and writing adapters for others is a reasonably simple task.

Applications (rather than libraries) may also choose to use commons-logging. While logging-implementation independence is not as important for applications as it is for libraries, using commons-logging does allow the application to change to a different logging implementation without recompiling code.

Note that commons-logging does not attempt to initialise or terminate the underlying logging implementation that is used at runtime; that is the responsibility of the application. However many popular logging implementations do automatically initialise themselves; in this case an application may be able to avoid containing any code that is specific to the logging implementation used.


The Release Notes document the new features and bug fixes that have been included in the latest release.

The Javadoc API documents for the latest release are available online. In particular, you should read the package overview of the org.apache.commons.logging package. In addition, there is a (short) User Guide.

The Wiki site has the latest updates, an FAQ, and much other useful information.

Users needing to become experts or wanting to help develop JCL should (in addition) consult the Tech Guide. This gives short introductions to topics such as advanced class loading.


Binary and source distributions are available here.

1.3.1 Release - March 2024

Please refer to the change-report.

1.3.0 Release - November 2023

Please refer to the change-report.

1.2 Release - July 2014

The main purpose of the 1.2 release is to drop support for Java 1.1.

For a full list of changes since the 1.1.3 release, please refer to the change-report.

1.1.3 Release - May 2013

The 1.1.3 release only updates the Bundle-SymbolicName in the manifest to "org.apache.commons.logging".

For a full list of changes since the 1.1.1 release, please refer to the change-report.

1.1.2 Release - March 2013

The 1.1.2 release is a packaging of bug fixes since release 1.1.1.

For the full details, see the release notes for this version.

1.1.1 Release - November 2007

This release is a minor update to the 1.1 release that fixes a number of bugs, and resolves packaging issues for maven 1.x and maven 2.x users.

For the full details, see the release notes for this version.

1.1 Release - 10 May 2006

This release makes several changes that are intended to resolve issues that have been encountered when using commons-logging in servlet containers or j2ee containers where complex classpaths are present and multiple copies of commons-logging libraries are present at different levels.

This release also adds support for the TRACE level added to Log4j in the 1.2.12 release. In former commons-logging versions, the log.trace method caused Log4j to output the message at the DEBUG level (the lowest level supported by Log4j at that time).

For the full details, see the release notes for this version.

1.0.5 Release (Alpha)

Note: the 1.0.5 release was abandoned at alpha status.

The next JCL release will be designated 1.1 since we feel this more accurately reflects the improvements made to the codebase.

1.0.4 Release - 16 Jun 2004

The 1.0.4 release of commons-logging is a service release containing support for both the 1.2.x and 1.3.x series of Log4J releases.

1.0.3 Release - 7 Apr 2003

The 1.0.3 release is primarily a maintenance and code cleanup release with minimal new features.

1.0.2 Release - 27 September 2002

The 1.0.2 release is a packaging of bug fixes since release 1.0.1.

1.0.1 Release - 13 August 2002

The 1.0.1 release is a packaging of bug fixes and minor enhancements since release 1.0.

Development Builds

Regular builds of the current SVN HEAD code are made available. See the wiki for details.