[java] Log4j의 경고 로그 설정 및 사용

Log4j는 자바에서 로그를 기록하고 관리하기 위한 유용한 도구입니다. 이 문서에서는 Log4j의 경고 로그를 설정하고 사용하는 방법에 대해 알아보겠습니다.

1. Log4j 의존성 추가

먼저, 프로젝트의 의존성 관리 도구를 사용하여 Log4j를 사용할 수 있도록 추가해야 합니다. Maven을 사용하는 경우, pom.xml 파일에 다음 의존성을 추가합니다:

<dependencies>
  <dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-core</artifactId>
    <version>2.14.1</version>
  </dependency>
</dependencies>

Gradle을 사용하는 경우, build.gradle 파일에 다음 의존성을 추가합니다:

dependencies {
  implementation 'org.apache.logging.log4j:log4j-core:2.14.1'
}

의존성을 추가한 후, 프로젝트를 새로 고치거나 빌드해야 합니다.

2. Log4j 설정 파일 만들기

Log4j를 사용하기 전에, 설정 파일을 작성해야 합니다. log4j2.xml 또는 log4j2.properties 파일을 프로젝트의 클래스 경로에 추가합니다. 설정 파일의 위치는 src/main/resources 디렉토리에 보통 있습니다.

XML 설정 파일 예제

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
  <Appenders>
    <Console name="Console" target="SYSTEM_OUT">
      <PatternLayout pattern="%d [%t] %-5level %logger{36} - %msg%n" />
    </Console>
  </Appenders>
  <Loggers>
    <Root level="warn">
      <AppenderRef ref="Console" />
    </Root>
  </Loggers>
</Configuration>

Properties 설정 파일 예제

status = warn

appender.console.type = Console
appender.console.name = Console
appender.console.target = SYSTEM_OUT
appender.console.layout.type = PatternLayout
appender.console.layout.pattern = %d [%t] %-5level %logger{36} - %msg%n

rootLogger.level = warn
rootLogger.appenderRef.console.ref = Console

설정 파일에서는 로깅 레벨, 출력 형식, 대상 설정 등을 구성할 수 있습니다. 위 예제에서는 WARN 레벨 이상의 로그를 콘솔에 출력하는 설정을 보여줍니다.

3. Log4j 사용하기

로그를 기록하려면 Log4j의 로거(Logger)를 사용해야 합니다. 로거는 해당 클래스 또는 패키지에서 사용할 수 있으며, 로그 레벨에 따라 메시지를 기록합니다.

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

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

  public static void main(String[] args) {
    logger.info("이 메시지는 info 로그입니다.");
    logger.warn("이 메시지는 경고 로그입니다.");
    logger.error("이 메시지는 에러 로그입니다.");
  }
}

위 예제에서는 경고 레벨의 로그를 출력하기 위해 logger.warn 메서드를 사용했습니다. 다른 로그 레벨에 따라 logger.info, logger.error 등의 메서드를 사용할 수 있습니다.

로그 메시지는 설정 파일에서 지정한 형식에 따라 출력됩니다. 위에서 작성한 예제 설정 파일에서는 로그 메시지의 출력 형식을 지정했습니다.

결론

Log4j를 사용하여 경고 로그를 설정하고 사용하는 방법을 알아보았습니다. Log4j는 다양한 로깅 기능을 제공하므로, 프로젝트에서 로그를 효율적으로 관리할 수 있습니다. Log4j 설명서를 참조하여 더 많은 기능과 설정을 알아보시기 바랍니다.

참고 자료