[스프링] 분산 추적을 위한 로깅 설정 방법은?

로깅 설정

스프링 애플리케이션에서 분산 추적을 위한 로깅을 설정하려면 주로 SLF4JLogback을 사용합니다.

Maven 종속성 설정

먼저, pom.xml 파일에 SLF4J와 Logback의 Maven 종속성을 추가합니다.

<dependencies>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>{version}</version>
    </dependency>
    <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-classic</artifactId>
        <version>{version}</version>
    </dependency>
</dependencies>

Logback 설정 파일

다음으로, src/main/resources 폴더에 logback.xml 파일을 생성한 후 분산 추적을 위한 로깅 설정을 추가합니다. 예를 들어, 로그를 stdout와 파일에 기록하도록 설정할 수 있습니다.

<configuration>
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>
    <appender name="FILE" class="ch.qos.logback.core.FileAppender">
        <file>app.log</file>
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>
    <root level="debug">
        <appender-ref ref="STDOUT" />
        <appender-ref ref="FILE" />
    </root>
</configuration>

위의 설정은 로그를 콘솔(STDOUT)과 app.log 파일에 날짜, 쓰레드, 로그 레벨, 로거 이름, 메시지를 기록하도록 합니다.

분산 추적 시스템(예: Zipkin)과 연동하려면 해당 시스템에서 제공하는 라이브러리를 추가하고 로깅 설정을 업데이트해야 합니다. 자세한 내용은 각 분산 추적 시스템의 공식 문서를 참고하시기 바랍니다.

분산 추적을 위한 스프링 애플리케이션의 로깅 설정은 이렇게 간단합니다!