[java] SLF4J에서 로깅 메시지에 타임스탬프를 포함하는 방법은 무엇인가요?
SLF4J는 로깅 기능을 제공하는 Java 라이브러리이며, 실제로 로깅을 수행하는 구현체는 Logback, Log4j 등 다양한 구현체를 선택할 수 있습니다.
SLF4J에서는 로깅 메시지에 대한 포맷을 지정하기 위해 “logback.xml” 또는 “log4j.properties”와 같은 설정 파일을 사용하거나, 프로그래밍적으로 설정을 변경할 수 있습니다.
로그 메시지에 타임스탬프를 포함하려면, 아래와 같이 설정 파일을 수정하면 됩니다.
- 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{}
안에는 원하는 날짜 포맷을 지정할 수 있습니다.
- 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{}
안에는 원하는 날짜 포맷을 지정할 수 있습니다.
위 설정을 적용하고 나면, 로그 메시지가 출력될 때 지정한 타임스탬프 포맷으로 출력됩니다.