kotlin logger

2023. 6. 26. 23:01·Kotlin

kotlin 에서 slf4j logger 를 이용할 경우 불편한 점이 있어 LoggerDelegate 를 이용하여 사용하는 전략을 사용하고 있습니다.

class LoggerDelegate : ReadOnlyProperty<Any, Logger> {
    private lateinit var logger: Logger
    override fun getValue(thisRef: Any, property: KProperty<*>): Logger {
        if (!::logger.isInitialized) {
            logger = LoggerFactory.getLogger(thisRef.javaClass.name.substringBefore("\$Companion"))
        }
        return logger
    }
}

val loggerK: ReadOnlyProperty<Any, Logger> get() = LoggerDelegate()

 

사용 예제

// 사용방법 (1)
class GreetingService {
    private val log by loggerK
    
    fun hello() {
    	log.info("hello")
    }
}

// 사용방법 (2)
class GreetingService {
    companion object {
        private val logger by loggerK
    }
    
    fun hello() {
    	log.info("hello")
    }
}

'Kotlin' 카테고리의 다른 글

Kotlin Coroutine 개념  (0) 2023.10.05
kotlin euc-kr to utf-8 conversion  (0) 2023.09.09
Apache POI sheet.autoSizeColumn() Speed Up  (0) 2023.08.08
Kotlin Collections overview  (0) 2023.03.26
'Kotlin' 카테고리의 다른 글
  • Kotlin Coroutine 개념
  • kotlin euc-kr to utf-8 conversion
  • Apache POI sheet.autoSizeColumn() Speed Up
  • Kotlin Collections overview
somoly
somoly
About me.
  • somoly
    somoly.tistory.com
    somoly
  • 전체
    오늘
    어제
    • 전체 (55)
      • SpringBoot (8)
      • Kotlin (5)
      • Javascript (4)
      • 백엔드 (6)
      • Linux (25)
      • Windows (1)
      • IT (2)
      • FF14 (1)
      • 애니 (1)
      • Figure (1)
      • 회사생활 (1)
  • 블로그 메뉴

    • HOME
    • TAGS
    • MEDIA
    • LOCATION
    • GUESTBOOK
    • ADMIN
    • WRITE
  • 링크

    • [FF14] 5.0 (71-80) 제작 레벨링 매크로
    • [FF14] 갈론드벨
    • [FF14] FFLogs
    • [FF14] Ariyala 장비 시뮬레이터
    • [FF14] 낚시 도우미
    • [FF14] 인테리어 정보
    • [FF14] 의상 코디 정보
  • 공지사항

  • 인기 글

  • 태그

    ubuntu
    interactive table
    Kotlin
    exchage method
    종료
    accesskey
    부팅
    설치
    linux
    HTTP
    springboot
    VirtualBox
    javascript
    string methods
    bcmod
    tabulator
    dynamodb local
    동영상
    P2P
    피규어
    Spring
    versioncomapre
    30일전
    83인치
    우분투
    77인치
    최후의 재림
    리눅스
    jvminline
    utf-8
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
somoly
kotlin logger
상단으로

티스토리툴바