보통의 프로젝트 진행시 Log4j 설정을 properties 파일이나 xml 파일로 설정하여 진행한다.

일단 한 번 지정해 놓으면 상당히 편리하며 프로젝트에 참여하는 모든 개발자들이 동일한 Appender를 이용하여 쉽게 로그를 출력 혹은 파일로 저장하게 된다.

그러나 간단한 테스트 혹은 특정 라이브러리를 작성하여 jar 형태등으로 제공하는 경우에는 이와 같은 로그 설정파일을 작성하기도 귀찮을 수 있고, jar 파일등에 포함하여 배포하는것이 로그 출력에 혼란을 가져올 수 있다.

이럴 경우에는 다음과 같이 자바 소스에서 간단한 설정으로 Log4j 설정을 할 수 있다.

예제는 콘솔 출력일 경우이다.

public class Foo {
    private Logger logger = Logger.getLogger(this.getClass());

    public Foo() {
        if (logger.getAppender("console") == null) {
            // console 이라는 이름을 가진 appender가 없을 경우에 생성.
            // 출력 형태를 지정.
            Layout layout = new PatternLayout("%d [%t] %p - %C{1}.%M(%L) | %m%n");

            // 위의 출력형태를 가지는 Console appender를 생성.
            Appender console = new ConsoleAppender(layout);

            // 나중에 Log4j에 등록된 appender를 구분하기 위한 이름을 지정.
            console.setName("console");

            // 생성된 appender를 Log4j에 지정.
            logger.addAppender(console);
        }
    }

    public void doSomething() {
        logger.debug("로그 메세지를 출력합니다.");
    }
}

위의 소스를 보면, properties, xml 형태로 지정했던 설정키가 눈에 들어올 것이다.

jUnit 테스트에서도 유용하게 쓸 수 있다.

아... 제길, 나보고 죽으란 얘긴가?
저 수많은 error와 warning을 어쩌란 말이냐!!!

로직변경의 시작

+ Recent posts