[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에 대한 자세한 내용은 공식 문서를 참조하시기 바랍니다.