有没有办法用Kotlin中的注解类实现类似于Lombok的注解@slf4j
的东西?
现在我有一个扩展函数,它为我示例化了一个Logger Factory,我必须在我的每个类中创建这些变量,就像下面的例子一样:
@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"
}
}
2条答案
按热度按时间jchrr9hc1#
我昨天做了这个漂亮的东西
编辑:
不要用上面的这个乱七八糟的东西。
请参阅Kotlin中的惯用登录方式
7lrncoxx2#
将Danny Lagrouw的评论转化为答案:
您可以获得一个类似于
@Slf4j
的简单样板解决方案,它不需要您使用Micro Utils' kotlin-logging手动指定类警告:我刚刚开始使用它,但是还没有研究它放在Slf4j上面的任何Kotlin糖,但是到目前为止,它作为kotlin代码中
@Slf4j
的一个直接替代品似乎处理得足够好。