Site Search :
Standard Enterprise XML Methodology Pattern Setting Tunning Other
Article Contributors
GuestBook
Javapattern Maven
XSourceGen Dev
JetSpeed Test
JLook Image
jLook Family Site


Log4j를 위한 여러가지 환경설정(xml property)
 
이번글은 XML을 이용한 property설정을 이용하여 jakarta-log4j의 환경설정 및 테스트 구동파일에 대한 사용방법을 설명한다. ( 2003/02/28 ) 691
Written by ienvyou - 최지웅
1 of 2
 
<font face='굴림'>이번글은 XML을 이용한 property설정을 이용하여 jakarta-log4j의 환경설정 및
테스트 구동파일에 대한 사용방법을 설명한다.

기본적으로 log4j를 다운로드 받아야 하며, 이 패키지는 퍼포먼스최적화, 
수행중의 다른 프로그램과의 충돌등에서 여러 가지 사항을 고려한 패키지이며,
가장 간단하게 로그를 기록하고 볼수 있는 좋은 패키지이다..

우선 log4j를 다운받아 클래스패스에 추가하여 애플리케이션 형태로 도는 프로그램을
테스트해보도록 한다.

1. Log4J환경설정방법
	- jakarta.apache.org에서 log4j의 최신판(binary)을 다운로드 받는다.
	- 압축을 푼후 log4j library파일을 클래스 패스에 추가한다.

2. Log4J의 두가지 프로퍼티 형태
   Log4J는 일반적으로 XML형태의 설정을 가진 property와 properties형태로 읽어들이는
   두가지의 종류가 있다. 보통 개발을 할 경우 property파일을 이용하는 경우는 많으나
   xml에 대한 설정방법 및 환경에 대한 한글참조가 없어서 여기서는 xml을 이용한
   DOMConfigurator를 사용하여 샘플테스트를 해보도록 하겠다.

3. 샘플프로그램
   우선 내가 원하는 logger클래스를 사용할 수 있는 클래스를 <b>팩토리패턴</b>을 구사하여
   만들어보도록 하겠다.

   이파일은 LogUtil이란 클래스를 사용하였으며 본사이트에도 적용되어 있다.

/*
 * @(#)LogUtil.java	1.00 2003.02.01
 *
 * Copyright Choi Ji Woong,  All Rights Reserved.
 * 
 * 
 */
import org.apache.log4j.Logger;
import org.apache.log4j.xml.DOMConfigurator;

import java.io.IOException;
import java.net.URL;


/**
 *	XML Property logger test이네요..히히
 * <p><p>
 *
 * @author  놀새(ienvyou@jlook.com)
 * @version 1.00, 2003.02.01
 * @since   log4j-1.2.7
 */

public class LogUtil {
    //private static Logger logger = LogUtil.getLogger(OtherClass.class);
	public static void init(String xmlFile) {
		String resource = xmlFile;
        URL configFileResource = LogUtil.class.getResource(resource);
	//	System.out.println("URL =======> " + configFileResource + 
	" ::::: " + configFileResource.getFile());
        //DOMConfigurator.configure(configFileResource.getFile());
		DOMConfigurator.configure(xmlFile);
	}

	public static Logger getLogger(Class c) {
		return Logger.getLogger(c);
	}
}

다음은 해당 클래스를 테스트해볼수 있는 세개의 클래스를 나열해보도록 하겠다.

/*
 * @(#)OtherClass.java	1.00 2003.02.01
 *
 * Copyright Choi Ji Woong,  All Rights Reserved.
 * 
 * 
 */
import org.apache.log4j.Logger;
import org.apache.log4j.xml.DOMConfigurator;

import java.io.IOException;
import java.net.URL;


/**
 *	XML Property logger test이네요..히히
 * <p><p>
 *
 * @author  놀새(ienvyou@jlook.com)
 * @version 1.00, 2003.02.01
 * @since   log4j-1.2.7
 */

public class OtherClass {
    public OtherClass() {
		Logger logger = LogUtil.getLogger(OtherClass.class);
		logger.debug("Other Class debug");
		logger.info("Other Class info");
		logger.warn("Other Class warn");
		logger.fatal("Other Class fatal");
		logger.error("Other Class error");
	}
}

/*
 * @(#)XMLPropertiesFileLoggerTest.java	1.00 2003.02.01
 *
 * Copyright Choi Ji Woong,  All Rights Reserved.
 * 
 * 
 */
import org.apache.log4j.Logger;
import org.apache.log4j.xml.DOMConfigurator;

import java.io.IOException;
import java.net.URL;


/**
 *	XML Property logger test이네요..히히
 * <p><p>
 *
 * @author  놀새(ienvyou@jlook.com)
 * @version 1.00, 2003.02.01
 * @since   log4j-1.2.7
 */

public class XMLPropertiesFileLoggerTest {
    

    public static void main(String argv[]) {
		LogUtil.init(argv[0]);
        Logger logger = LogUtil.getLogger(XMLPropertiesFileLoggerTest.class);
        // Add a bunch of logging statements ...
        logger.debug("Hello,놀새1~");
        logger.debug("Hello,놀새2~");
        logger.debug("Hello,놀새3~");
        logger.debug("Hello,놀새4~");
        logger.debug("Hello,놀새5~");

        logger.info("놀새정보1");
        logger.info("놀새정보2");
        logger.info("놀새정보3");
        logger.info("놀새정보4");
        logger.info("놀새정보5");

        logger.warn("아뛰~ 워닝이야~1");
        logger.warn("아뛰~ 워닝이야~2");
        logger.warn("아뛰~ 워닝이야~3");
        logger.warn("아뛰~ 워닝이야~4");
        logger.warn("아뛰~ 워닝이야~5");

        logger.error("헉뚜~~ 에러야1");
        logger.error("헉뚜~~ 에러야2" , new IOException("아~ 뛰바~"));
        logger.error("헉뚜~~ 에러야3");
        logger.error("헉뚜~~ 에러야4" , new IllegalStateException("Error !!"));


        logger.fatal("엇..치명타다1");
        logger.fatal("엇..치명타다2" , new SecurityException("Fatal Exception"));
        logger.fatal("엇..치명타다3");
        logger.fatal("엇..치명타다4" , new SecurityException("Fatal Exception"));

		new OtherClass();
    }
}


위와 같이 작성이 될 수 있으며 실행방법은 

컴파일
javac -classpath %LOG4J_HOME%\lib\log4j-1.2.7.jar; XMLPropertiesFileLoggerTest.java


실행
java -classpath %LOG4J_HOME%\lib\log4j-1.2.7.jar; XMLPropertiesFileLoggerTest config.xml

다음페이지에서는 여러가지 환경설정을 할 수 있는 xml파일을 소개한다.
 
1 2
References
 
http://jakarta.apache.org
Copyright ⓒ 2003 www.javapattern.info & www.jlook.com, an jLOOK co.,LTD