[java] Log4j의 콘솔 로깅

Log4j는 자바 애플리케이션의 로깅을 위한 강력한 도구입니다. 로깅은 애플리케이션의 동작을 추적하고 디버깅하는데 매우 유용합니다. Log4j를 사용하여 애플리케이션의 로그를 콘솔에 출력할 수 있습니다. 이번 글에서는 Log4j를 사용하여 콘솔 로깅을 설정하는 방법에 대해 알아보겠습니다.

1. Log4j 의존성 추가

먼저 Maven, Gradle 등 빌드 도구를 사용하여 프로젝트에 Log4j 의존성을 추가해야 합니다. 아래는 Maven을 사용하는 경우 pom.xml 파일에 추가해야 할 내용입니다.

<dependency>
  <groupId>log4j</groupId>
  <artifactId>log4j</artifactId>
  <version>1.2.17</version>
</dependency>

2. 로그 설정 파일 만들기

Log4j는 로깅을 위한 설정 파일을 사용합니다. log4j.properties 또는 log4j.xml 파일을 사용할 수 있으며, 프로젝트의 클래스패스에 위치해야 합니다. 여기서는 log4j.properties 파일을 사용하는 예제를 보여드리겠습니다.

# Root logger option
log4j.rootLogger=INFO, console

# Console appender configuration
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p [%c] - %m%n

위 설정 파일에서는 root logger의 레벨을 INFO로 설정하고, console appender를 추가했습니다. PatternLayout을 사용하여 로그 메시지의 형식을 지정하고 있습니다.

3. 로그 사용하기

로그를 사용하기 위해서는 org.apache.log4j.Logger 클래스의 인스턴스를 얻어와야 합니다. 보통은 클래스 단위로 Logger 인스턴스를 생성하며, Logger.getLogger() 메서드를 사용하여 생성할 수 있습니다.

import org.apache.log4j.Logger;

public class MyClass {
    private static final Logger logger = Logger.getLogger(MyClass.class);

    public void doSomething() {
        logger.info("Hello, Log4j!");
    }
}

위의 예제에서는 MyClass에 대한 Logger 인스턴스를 생성하여 사용하고 있습니다. doSomething() 메서드에서는 logger.info() 메서드를 사용하여 로그 메시지를 출력하고 있습니다.

4. 콘솔에 로그 출력하기

이제 콘솔에 로그를 출력해보겠습니다. log4j.properties 파일의 설정에서 root logger의 레벨을 INFO로 설정했으므로, logger.info() 메서드를 호출할 때마다 로그가 출력됩니다.

public class Main {
    private static final Logger logger = Logger.getLogger(Main.class);

    public static void main(String[] args) {
        logger.info("Hello, Log4j!");
    }
}

위의 예제를 실행하면 콘솔에 아래와 같이 로그 메시지가 출력됩니다.

2022-05-30 13:25:45 INFO  [Main] - Hello, Log4j!

이와 같이 Log4j를 사용하여 콘솔에 로그를 출력할 수 있습니다. 로그 레벨 설정, 출력 형식 등은 log4j.properties 파일에서 조정할 수 있으며, 필요에 따라 파일이나 다른 출력 장치로 로그를 보낼 수도 있습니다.

더 자세한 내용은 Log4j 공식 문서를 참고하시기 바랍니다.