Есть ли способ реализовать что-то похожее на аннотацию Lombok @slf4j
с классом аннотаций в Kotlin?
Сейчас у меня есть функция расширения, которая создает для меня фабрику логгеров, и я должен создать эти переменные в каждом из моих классов, как в примере ниже:
@RestController
@RequestMapping("/api/v1/sample")
class SampleController() {
private val log = logger()
@GetMapping
fun show(): String {
log.info("SOME LOGGING MESSAGE")
return "OK"
}
}
inline fun <reified T> T.logger(): Logger {
if (T::class.isCompanion) {
return LoggerFactory.getLogger(T::class.java.enclosingClass)
}
return LoggerFactory.getLogger(T::class.java)
}
Что я хочу достичь, это что-то вроде:
@Logger
@RestController
@RequestMapping("/api/v1/sample")
class SampleController() {
@GetMapping
fun show(): String {
log.info("SOME LOGGING MESSAGE")
return "OK"
}
}