[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는 XML 또는 프로퍼티 파일을 통해 로깅 설정을 관리합니다. 여기서는 XML 파일을 사용하는 방법을 알아보겠습니다.

프로젝트의 리소스 폴더에 log4j2.xml 파일을 만듭니다. 다음은 간단한 설정 파일의 예입니다:

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

위 예제에서는 로그가 콘솔에 출력되도록 설정되어 있습니다. 또한, Root 로거의 레벨을 ERROR로 설정하여 치명적인 에러 로그만 출력하도록 지정하였습니다.

3. Log4j 사용하기

이제 Log4j를 사용하여 치명적인 에러 로그를 기록할 수 있습니다. Java 클래스에서 다음과 같이 Log4j를 설정하고 로그를 사용할 수 있습니다:

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 void doSomething() {
    // 치명적인 에러 발생
    try {
      // 코드
    } catch (Exception e) {
      logger.error("치명적인 에러가 발생하였습니다.", e);
    }
  }

  public static void main(String[] args) {
    MyClass myObj = new MyClass();
    myObj.doSomething();
  }
}

위 코드에서는 LogManager.getLogger() 메소드를 사용하여 로거를 가져오고, logger.error() 메소드를 사용하여 치명적인 에러 로그를 출력합니다.

4. 로그 확인하기

프로그램을 실행한 후, 치명적인 에러가 발생하면 설정한 로그 레벨에 따라 치명적인 에러 로그가 콘솔에 출력됩니다. 위 설정 파일의 예에서는 [ERROR] 로그 레벨 이상의 메시지만 출력되도록 지정했으므로, 치명적인 에러 로그만 출력됩니다.

마무리

이번 포스트에서는 Log4j를 사용하여 치명적인 에러 로그를 설정하고 기록하는 방법을 알아보았습니다. Log4j를 이용하면 다양한 로그 레벨을 설정하여 필요한 로그만 출력하도록 관리할 수 있습니다.