[java] SLF4J에서 로깅 메시지에 타임스탬프를 포함하는 방법은 무엇인가요?

SLF4J는 로깅 기능을 제공하는 Java 라이브러리이며, 실제로 로깅을 수행하는 구현체는 Logback, Log4j 등 다양한 구현체를 선택할 수 있습니다.

SLF4J에서는 로깅 메시지에 대한 포맷을 지정하기 위해 “logback.xml” 또는 “log4j.properties”와 같은 설정 파일을 사용하거나, 프로그래밍적으로 설정을 변경할 수 있습니다.

로그 메시지에 타임스탬프를 포함하려면, 아래와 같이 설정 파일을 수정하면 됩니다.

  1. logback.xml을 사용하는 경우:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>
    <root level="INFO">
        <appender-ref ref="CONSOLE" />
    </root>
</configuration>

위 설정에서 %d{yyyy-MM-dd HH:mm:ss} 패턴은 날짜와 시간을 포맷팅하는데 사용되며, %d{} 안에는 원하는 날짜 포맷을 지정할 수 있습니다.

  1. log4j.properties를 사용하는 경우:
log4j.rootLogger=INFO, CONSOLE
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%t] %-5p %c{1}:%L - %m%n

위 설정에서 %d{yyyy-MM-dd HH:mm:ss} 패턴은 날짜와 시간을 포맷팅하는데 사용되며, %d{} 안에는 원하는 날짜 포맷을 지정할 수 있습니다.

위 설정을 적용하고 나면, 로그 메시지가 출력될 때 지정한 타임스탬프 포맷으로 출력됩니다.