[java] SLF4J에서 로깅 메시지에 사용자 정의 패턴을 적용하는 방법은 무엇인가요?

아래의 예제 코드를 통해 사용자 정의 패턴을 적용하는 방법을 알아보겠습니다.

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.apache.logging.log4j.core.PatternLayout;
import org.apache.logging.log4j.core.config.Configuration;


public class CustomPatternExample {

    private static final Logger LOGGER = LogManager.getLogger(CustomPatternExample.class);

    public static void main(String[] args) {

        Configuration configuration = ((org.apache.logging.log4j.core.Logger) LOGGER).getContext().getConfiguration();
        PatternLayout layout = PatternLayout.newBuilder()
                .withPattern("%d{yyyy-MM-dd HH:mm:ss} [%t] %p %c{1} - %m%n")
                .withConfiguration(configuration)
                .build();

        ((org.apache.logging.log4j.core.Logger) LOGGER).getContext().getConfiguration().getAppenders().forEach((k, v) -> {
            v.setLayout(layout);
        });

        LOGGER.info("This is a custom pattern example");

    }
}

위의 코드에서는 PatternLayout.newBuilder().withPattern(...)을 사용하여 원하는 패턴을 지정합니다. 예제에서는 시간, 스레드, 로그 레벨, 클래스 이름 및 로그 메시지를 출력하는 패턴을 사용하고 있습니다.

마지막으로, Logger 객체에 새로운 패턴을 적용하기 위해 setLayout(layout)를 사용합니다.

이제 위의 예제 코드를 실행하면 로그 메시지가 원하는 패턴으로 출력되는 것을 확인할 수 있습니다.

SLF4J에 대한 자세한 내용은 공식 문서를 참조하시기 바랍니다.