Troubleshoot > Add logging and tracing to the application > Configure applications to use Jakarta Commons Logging

Configurations for the WAS logger

This topic describes several ways to configure an application to use the WebSphere Application Server logger.

The type of configuration that best suits an application depends upon the following:

The following tables describe the conditions required to enable an application to use the WAS logger.


Class loader mode is Parent First and Jakarta Commons Logging is bundled with the application

Conditions required to use logger. When Parent First and Jakarta Commons Logging is bundled with an application.

Jakarta Commons Logging configuration LogFactory instance Log instance Comments
The application provides the configuration by either of the following:

- The properties file commons-logging.properties in the application classpath is not read by the LogFactory because the parent class loader finds the WebSphere properties file first.

- The class name is read from the file

    META-INF/services/org.apache.commons.logging.LogFactory
Thelogfactory used is the LogFactory implementation specified in the WAS default configuration, unless the configuration is provided in a META-INF file of the application or module. The log used is either of the following:

- The Log implementation specified in the WAS default configuration
- An application-specific Log implementation if an application-specific LogFactory that instantiates a different Log implementation is used.

The application parent class loader is the first class loader to load the Jakarta Commons Logging code. The WebSphere bundle that supports Jakarta Commons Logging provides the LogFactory static code that looks up the LogFactory configuration attributes.

For the static LogFactory code to instantiate the LogFactory instance specified in the application configuration, the LogFactory instance must be on the classpath of the parent class loader.

Not provided by the application The log factory used is the LogFactory implementation specified in the WebSphere default configuration. The log used is the Log implementation specified in the WebSphere default configuration. The Jakarta Commons Logging bundled with the application is not used.


Class loader mode is Parent First and Jakarta Commons Logging is not bundled with the application

Conditions required to use logger. When Parent First and Jakarta Commons Logging is not bundled with an application.

Jakarta Commons Logging configuration LogFactory instance Log instance Comments
The application provides the configuration by either of the following:

- The properties file commons-logging.properties in the application classpath is not read by the LogFactory because the parent class loader finds the WAS properties file first.
- The class name is read from the file

META-INF/services/
org.apache.commons
.logging.LogFactory
The log factory used is the LogFactory implementation specified in the WAS default configuration, unless the configuration is provided in a META-INF file of the application or module. The log used is either of the following:

- The Log implementation specified in the WAS default configuration

- An application-specific Log implementation if an application-specific LogFactory that instantiates a different Log implementation is used.

The application parent class loader is the first class loader to load the Jakarta Commons Logging code. The WebSphere bundle that supports Jakarta Commons Logging provides the LogFactory static code that looks up the LogFactory configuration attributes.

For the static LogFactory code to instantiate the LogFactory instance specified in the application configuration, the LogFactory instance must be on the classpath of the parent class loader.

Not provided by the application The log factory used is the LogFactory implementation specified in the WAS default configuration. The log used is the Log implementation specified in the WAS default configuration. Same as in the previous row


Class loader mode is Parent Last and Jakarta Commons Logging is bundled with the application

Conditions required to use logger. When Parent Last and Jakarta Commons Logging is bundled with an application.

Jakarta Commons Logging configuration LogFactory instance Log instance Comments
The application provides the configuration by either of the following:

- The properties file commons-logging.properties in the application classpath is read by the LogFactory because the class loader finds the application properties file first.

- The class name is read from the file

    META-INF/services/ org.apache.commons .logging.LogFactory
The log factory used is either of the following:

- The default Jakarta Commons Logging LogFactory

- The LogFactory specified in the application configuration

The log used is the Log implementation specified in the application configuration.

If the log factory used is the default Jakarta Commons Logging LogFactory, the Log implementation must be on the classpath of the application class loader.

The application class loader is the first class loader to load the Jakarta Commons Logging code. The application bundle that supports Jakarta Commons Logging provides the LogFactory static code that looks up the LogFactory configuration attributes.

For the static LogFactory code to instantiate the LogFactory instance specified in the application configuration, the LogFactory instance must be on the classpath of the application class loader.

Not provided by the application The log factory used is the LogFactory implementation specified in the WAS default configuration. The log used is the Log implementation specified in the WAS default configuration.  


Class loader mode is Parent Last and Jakarta Commons Logging is not bundled with the application

Conditions required to use logger. When Parent Last and Jakarta Commons Logging is not bundled with an application.

Jakarta Commons Logging configuration LogFactory instance Log instance Comments
The application provides the configuration by either of the following:

- The properties file commons-logging.properties in the application classpath is read by the LogFactory because the class loader finds the application properties file first.

- The class name is read from the file

META-INF/services/
org.apache.commons
.logging.LogFactory
The log factory used is either of the following:

- The default Jakarta Commons Logging LogFactory

- The LogFactory specified in the application configuration

The log used is the Log implementation specified in the application configuration.

If the log factory used is the default Jakarta Commons Logging LogFactory, the Log implementation must be on the classpath of the application class loader.

There is no Jakarta Commons Logging code at the application class loader. Thus, the WebSphere bundle that supports Jakarta Commons Logging provides the LogFactory static code that looks up the LogFactory configuration attributes.

For the static LogFactory code to instantiate the LogFactory instance specified in the application configuration, the LogFactory instance must be on the classpath of the parent class loader.

Not provided by the application The log factory used is the LogFactory implementation specified in the WAS default configuration. The log used is the Log implementation specified in the WAS default configuration.  


Related concepts:

Class loaders
Configure applications to use Jakarta Commons Logging
JSR 47: Logging API Specification
Jakarta Commons
Logging/Containers And Classloaders


+

Search Tips   |   Advanced Search