kotlin slf4j를 사용하여 기록하는 가장 좋은 방법
로그백을 사용한 기본 로그 구성의 스프링 부트 프로젝트가 있습니다.저는 항상 애플리케이션 내부의 로깅 목적으로 이 접근 방식을 사용해 왔습니다.
logger.info("Get user paginated: filter {}",user)
지금 저는 코틀린을 배우고 있으며 String 템플릿에 대해 읽고 있었습니다.$를 사용하여 문장을 다시 쓴다면 다음과 같습니다.
logger.info("Get user paginated: filter $user")
Spring boot로 Kotlin에 로그인하는 방법은 무엇입니까?
더 나은 방법은 둘 다 아닙니다; https://github.com/MicroUtils/kotlin-logging 을 추가하고 글을 쓰십시오.
logger.info { "Get user paginated: filter $user" }
양쪽 모두의 이점을 가지고
의 요점.{}
SLF4J가 지원하는 구문은 로그 메시지가 실제로 생성되지 않는 경우(예: 레벨이 정보보다 높기 때문에) 쓸모없는 String 연결 및 toString() 호출을 방지하는 것입니다.
템플릿 문자열은 이를 피하지 않습니다.user.toString()
메서드를 호출하고 로그 메시지의 정적 부분에 결과를 추가해야 합니다.logger.info()
.
따라서 최고의 성능을 원하는 경우 SL4J 매개 변수를 사용하십시오.상관하지 않고 템플릿 문자열이 더 읽기 쉬운 경우 템플릿 문자열을 사용합니다.
Slf4j-template를 사용하지 않으려면{}
그리고 추가적인 의존성을 추가하고 싶지 않다면, 코틀린 스타일을 효율적으로 지원하기 위해 프로젝트에 나의 간단한 코틀린-slf4j-dll을 추가할 수 있습니다.
private val log = LoggerFactory.getLogger(this.javaClass)
fun log() {
log.trace { "trace message" }
log.debug { "debug message" }
log.info { "info message" }
log.warn { "warn message" }
log.error { "error message" }
log.error(IllegalStateException("throwable message")) { "exception" }
}
Slf4k는 코틀린 확장을 사용하지 않는 대체 구현입니다.
val log = Slf4k.getLogger {}
private val logger = LoggerFactory.getLogger(this::class.java)
fun testing() {
logger.info(ctx.toString())
logger.error(err.message)
}
언급URL : https://stackoverflow.com/questions/57728079/kotlin-best-way-to-log-using-slf4j
'source' 카테고리의 다른 글
열 유형을 지정하는 판다에 빈 데이터 프레임 만들기 (0) | 2023.07.21 |
---|---|
Spring boot and flyway: 통합 테스트 전에 데이터베이스 데이터 삭제 (0) | 2023.07.21 |
Java 클래스 캐스트 예외 - 스프링 부트 (0) | 2023.07.21 |
Python: 일시적으로 압축을 풀지 않고 zip으로 파일 열기 (0) | 2023.07.21 |
스프링 구성 서버 - 해당 레이블 없음: 마스터 (0) | 2023.07.21 |