[java] Java JHipster의 로깅 수준 및 설정 변경 방법

Java JHipster는 사용자 정의 로깅 수준 및 구성을 지원하는 강력한 로깅 프레임워크를 제공합니다. 다음은 Java JHipster의 로깅 수준을 변경하고 로깅 설정을 사용자 지정하는 방법에 대한 안내입니다.

1. logback-spring.xml 파일 수정

Java JHipster에서는 logback-spring.xml 파일을 사용하여 로깅 구성을 제어합니다. 이 파일은 보통 src/main/resources/config 디렉토리에 위치하며, 로깅 수준 및 기타 로깅 설정을 변경할 수 있습니다.

<?xml version="1.0" encoding="UTF-8"?>
<configuration>

    <!-- 로그 패턴 설정 -->
    <property name="LOG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n"/>

    <!-- 로그 레벨 설정 -->
    <root level="INFO">
        <appender-ref ref="CONSOLE"/>
        <appender-ref ref="FILE"/>
    </root>

    <!-- Console Appender 선언 -->
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>${LOG_PATTERN}</pattern>
        </encoder>
    </appender>

    <!-- File Appender 선언 -->
    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <encoder>
            <pattern>${LOG_PATTERN}</pattern>
        </encoder>
        <file>logs/myapplication.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>logs/myapplication.%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern>
            <maxHistory>20</maxHistory>
        </rollingPolicy>
    </appender>

</configuration>

위의 설정 파일에서는 루트 로거의 레벨을 INFO로 설정하고, CONSOLEFILE 두 개의 Appender를 정의하고 있습니다. 필요한 경우 이 파일에서 로깅 수준이나 패턴을 원하는대로 변경할 수 있습니다.

2. 애플리케이션 프로파일별 로깅 구성

Java JHipster는 프로파일별로 로깅 설정을 구성할 수 있습니다. 예를 들어, application-dev.yml 파일을 사용하여 개발 프로파일에 대한 로깅을 지정할 수 있습니다. 아래는 application-dev.yml 파일의 예입니다.

logging:
  level:
    ROOT: INFO
    com.example.myapp.service: DEBUG
  file: target/myapplication.log

이 예에서는 루트 로거의 로깅 수준을 INFO로 설정하고, com.example.myapp.service 패키지의 로깅 수준을 DEBUG로 지정합니다. 또한 로그 파일을 target/myapplication.log로 지정합니다.

3. 로깅 사용자 지정

Java JHipster는 사용자 지정된 로깅 설정을 지원합니다. 다음은 사용자 지정 로깅 설정을 추가하는 예입니다.

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class MyService {

    private final Logger log = LoggerFactory.getLogger(MyService.class);

    public void doSomething() {
        log.debug("Debug 메시지");
        log.info("Info 메시지");
        log.warn("Warn 메시지");
        log.error("Error 메시지");
    }
}

위의 예에서는 org.slf4j.Logger 인터페이스를 사용하여 로그를 기록합니다. LoggerFactory.getLogger() 메서드를 사용하여 로거 인스턴스를 가져올 수 있으며, 로깅 레벨에 따라 메시지를 기록할 수 있습니다.

참고 자료

이 글은 Java JHipster의 로깅 수준 및 설정 변경 방법에 대한 간단한 소개였습니다. JHipster 문서와 SLF4J 문서를 참조하여 자세한 내용을 확인하시기 바랍니다.