Home » Core Java » apache » commons » logging » Logfactory » org.apache.commons.logging.logfactory Example

About Chandan Singh

Chandan Singh
Chandan holds a degree in Computer Engineering and is a passionate software programmer. He has good experience in Java/J2EE Web-Application development for Banking and E-Commerce Domains.

org.apache.commons.logging.logfactory Example

In this example, we shall be talking about how we can use the Apache commons org.apache.commons.logging.Logfactory class.

You can download the apache commons logging Jar file from here.

The Logfactory class uses the Factory Design Pattern to select a logger class. The Apache Commons Logging library decouples the code from the underlying logging library we use.

 
 

The Logger class can be any one from these:

  1. org.apache.commons.logging.impl.Log4JLogger
  2. org.apache.commons.logging.impl.Jdk14Logger
  3. org.apache.commons.logging.impl.SimpleLog

We shall be using Log4J as the underlying logging library for the sake of this example.

Implementation:

We need to have the commons-logging.properties in our src folder.

commons-logging.properties:


org.apache.commons.logging.Log = org.apache.commons.logging.impl.Log4JLogger

The above property tells the Commons Library as to which Logger Class, the application intends to use. Then, we need to set up the corresponding library, Log4J in this case. The details about log4j setup are discussed, here. We will discuss in brief, how we can use it with Apache Commons Logging.

We need to add the log4j.properties to the src folder.

log4j.properties:

log4j.rootLogger=DEBUG, file

log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=D:\\logger.log
log4j.appender.file.MaxFileSize=5MB
log4j.appender.file.MaxBackupIndex=10
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

Now, with both the libraries configured we can use them in our Class:

LogDemo.java:


package com.jcg.examples;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;


public class LogDemo
{
		private static Log logger = LogFactory.getLog(LogDemo.class);

		public static void main(String[] args)
    {
				logger.info("Test info");
				logger.debug("Test info");

    }
}

logger.log:

2015-01-30 23:10:27 INFO  LogDemo:14 - Test info
2015-01-30 23:10:27 DEBUG LogDemo:15 - Test info

The commons-logging.properties file configures the application to use the log4j library using the Log4JLogger Class. When we intend to use any other implementation of Logging, we just need to provide the appropriate class name in the commons-logging.properties file.

Since our code(i.e. Java Classes) does not use any specific classes, they remain decoupled and unaffected by changes made to the underlying logging mechanism, as should be the ideal case!

Conclusion:

We studied how we can configure any library to be used without changing the existing code using the Apache Commons Logging library.

Download
You can download the source code of this example here: CommonLoggingDemo.zip
(No Ratings Yet)
Start the discussion Views Tweet it!

Do you want to know how to develop your skillset to become a Java Rockstar?

Subscribe to our newsletter to start Rocking right now!

To get you started we give you our best selling eBooks for FREE!

 

1. JPA Mini Book

2. JVM Troubleshooting Guide

3. JUnit Tutorial for Unit Testing

4. Java Annotations Tutorial

5. Java Interview Questions

6. Spring Interview Questions

7. Android UI Design

 

and many more ....

 

Receive Java & Developer job alerts in your Area

 

Leave a Reply

avatar
  Subscribe  
Notify of