반응형
서론 없이 바로 본론으로 들어가겠습니다.
1. Maven (pom.xml) Dependency 설정
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<version>1.2.9</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.9</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.32</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-ext</artifactId>
<version>1.7.32</version>
</dependency>
<dependency>
<groupId>ch.qos.cal10n</groupId>
<artifactId>cal10n-api</artifactId>
<version>0.8.1</version>
</dependency>
2. Resource Bundle 생성
여기서 파일명에 대한 네이밍규칙은 ${BaseName}_${language}.properties 이렇게 지켜주셔야합니다.
ko_KR 은 한글 버전 로그 // en_US 는 영어 버전 로그
각각의 로그는 아래 사진처럼 추가하였습니다.
이렇게 해서 다국어 로그를 지원하도록 해보겠습니다.
언어는 개발자에 의해서 얼마든지 더 추가될 수 있습니다.
3. LogCode Enum Class 생성
import ch.qos.cal10n.BaseName;
import ch.qos.cal10n.Locale;
import ch.qos.cal10n.LocaleData;
@BaseName("systemLog")
@LocaleData(
defaultCharset = "UTF-8",
value = {@Locale("ko_KR"), @Locale("en_US")}
)
public enum LogCode {
LOGCODE_0000,
LOGCODE_0001
}
여기에서 @BaseName은 Resource Bundle 에서 생성할 때 설명한 것처럼, Bundle 파일명을 기준으로 합니다.
4. 로그 출력 하기
import module.LogCode;
import java.util.Locale;
import ch.qos.cal10n.IMessageConveyor;
import ch.qos.cal10n.MessageConveyor;
import org.slf4j.cal10n.LocLogger;
import org.slf4j.cal10n.LocLoggerFactory;
public class main {
static final LocLogger Log = getLogger(main.class);
public static void main(String[] args) {
Log.info(LogCode.LOGCODE_0000);
}
private static LocLogger getLogger(Class clazz) {
IMessageConveyor messageConveyor = new MessageConveyor(Locale.KOREA);
LocLoggerFactory locLoggerFactory = new LocLoggerFactory(messageConveyor);
return locLoggerFactory.getLocLogger(clazz);
}
}
여기서 한가지 팁을 말하자면 getLogger 의 파라미터에는 main.class와 같이 클래스명을 직접 명시하지 않아도
getClass()를 통해서 자기 자신의 클래스를 불러올 수 있습니다.
이 포스팅의 예제에서는 main 클래스에서 static으로 설명을 하게되다보니 getClass()를 사용할 수 없어서
이런 예제로 설명드렸습니다.
여기까지 포스팅 끝 -
반응형
'백앤드 > Java' 카테고리의 다른 글
[JAVA] SpringBoot JPA Properties 속성 설정 (0) | 2023.02.10 |
---|---|
[JAVA] Webflux Cors 설정하기 (0) | 2022.05.08 |
[JAVA] SpringBoot 서비스 시작 포트 변경하기 (0) | 2021.10.12 |
[JAVA] 프로덕션용 OpenJDK 설치하기 (0) | 2020.09.21 |
[JAVA] 파일 압축 / apache 라이브러리 사용 (0) | 2019.02.19 |