Applying Multiple Logging

test configuration

To support three cases log level and policies, log4j.properties has changed as followed.

#=============================================================================
#	authorized by Fluency Team, Yonghyun Yoon (yonyoon@indiana.edu)
#	last modified Nov 2, 2007
#=============================================================================

#_____________________________________________________________________________
# global configuration : category(logger)
# stdout  : console display
# fileout : file record
# log4j.rootLogger --> specifeis logging level for 'stdout'
#_____________________________________________________________________________
log4j.configuration=log4j.properties
log4j.logger.org.knownspace.fluency.logging.domainA=DEBUG, DOMAIN_A
log4j.logger.org.knownspace.fluency.logging.domainB=INFO, DOMAIN_B
log4j.logger.org.knownspace.fluency.logging.domainC=ERROR, DOMAIN_C


#_____________________________________________________________________________
# detail configuation for 'DomainA'
# display location : console
# logging level : DEBUG
#_____________________________________________________________________________
log4j.appender.DOMAIN_A=org.apache.log4j.ConsoleAppender
log4j.appender.DOMAIN_A.layout=org.apache.log4j.PatternLayout
log4j.appender.DOMAIN_A.layout.ConversionPattern=%5p [%t] (%F:%L)- %m%n


#_____________________________________________________________________________
# detail configuation for 'DomainB'
# display location : console
# logging level : INFO
#_____________________________________________________________________________
log4j.appender.DOMAIN_B=org.apache.log4j.DailyRollingFileAppender
log4j.appender.DOMAIN_B.File=domainB.log
log4j.appender.DOMAIN_B.DatePattern='.'yyyy-MM-dd
log4j.appender.DOMAIN_B.layout=org.apache.log4j.PatternLayout
log4j.appender.DOMAIN_B.layout.DateFormat=ISO8601
log4j.appender.DOMAIN_B.layout.TimeZoneID=GMT-8:00
log4j.appender.DOMAIN_B.layout.ConversionPattern=[%d] %-5p %l - %m%n


#_____________________________________________________________________________
# detail configuation for 'DomainC'
# display location : console
# logging level : ERROR
#_____________________________________________________________________________
log4j.appender.DOMAIN_C=org.apache.log4j.DailyRollingFileAppender
log4j.appender.DOMAIN_C.File=domainC.log
log4j.appender.DOMAIN_C.DatePattern='.'yyyy-MM-dd
log4j.appender.DOMAIN_C.layout=org.apache.log4j.PatternLayout
log4j.appender.DOMAIN_C.layout.DateFormat=ISO8601
log4j.appender.DOMAIN_C.layout.TimeZoneID=GMT-8:00
log4j.appender.DOMAIN_C.layout.ConversionPattern=[%p] %c.%t(%L line) ::: [%d{ISO8601}] %m %x %n

Log4jMultiLoggingTest.java is Main class which runs different domains respectively.(DomainA, DomainB, and DomainC)

Log4jMultiLoggingTest.java
public class Log4jMultiLoggingTest {

	public static void main(String[] argv) {
		DomainA domainA = new DomainA();
		domainA.occurAllLog();

		DomainB domainB = new DomainB();
		domainB.occurAllLog();

		DomainC domainC = new DomainC();
		domainC.occurAllLog();
	}
}

note DomainA.java is under org.knownspace.fluency.logging.domainA package

DomainA .java
package org.knownspace.fluency.logging.domainA;

import org.apache.log4j.Logger;

public class DomainA {
	
	private Logger log = Logger.getLogger(DomainB.class);

	public void occurAllLog() {
		log.trace("trace string");
		log.debug("debug string");
		log.info("info string");
		log.warn("warn string");
		log.error("error string");
		log.fatal("fatal string");
	}
}

note DomainB.java is under org.knownspace.fluency.logging.domainB package

DomainB.java
package org.knownspace.fluency.logging.domainB;

import org.apache.log4j.Logger;

public class DomainB {
	
	private Logger log = Logger.getLogger(DomainB.class);

	public void occurAllLog() {
		log.trace("trace string");
		log.debug("debug string");
		log.info("info string");
		log.warn("warn string");
		log.error("error string");
		log.fatal("fatal string");
	}
}

note DomainC.java is under org.knownspace.fluency.logging.domainC package

DomainC.java
package org.knownspace.fluency.logging.domainC;

import org.apache.log4j.Logger;

public class DomainC {
	
	private Logger log = Logger.getLogger(DomainB.class);

	public void occurAllLog() {
		log.trace("trace string");
		log.debug("debug string");
		log.info("info string");
		log.warn("warn string");
		log.error("error string");
		log.fatal("fatal string");
	}
}

test results

console result for DomainA

DEBUG [main] (DomainA.java:11)- debug string
 INFO [main] (DomainA.java:12)- info string
 WARN [main] (DomainA.java:13)- warn string
ERROR [main] (DomainA.java:14)- error string
FATAL [main] (DomainA.java:15)- fatal string

file result(domainB.log) for DomainB

[2007-11-04 12:20:32,328] INFO  org.knownspace.fluency.logging.domainB.DomainB.occurAllLog(DomainB.java:12) - info string
[2007-11-04 12:20:32,328] WARN  org.knownspace.fluency.logging.domainB.DomainB.occurAllLog(DomainB.java:13) - warn string
[2007-11-04 12:20:32,328] ERROR org.knownspace.fluency.logging.domainB.DomainB.occurAllLog(DomainB.java:14) - error string
[2007-11-04 12:20:32,328] FATAL org.knownspace.fluency.logging.domainB.DomainB.occurAllLog(DomainB.java:15) - fatal string

file result(domainC.log) for DomainC

[ERROR] org.knownspace.fluency.logging.domainC.DomainC.main(14 line) ::: [2007-11-04 12:20:32,343] error string  
[FATAL] org.knownspace.fluency.logging.domainC.DomainC.main(15 line) ::: [2007-11-04 12:20:32,343] fatal string  
Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.