kotlin 有没有类似 lombok 那样的 @slf4j 注解

2021-06-28 10:10:23 +08:00
 warcraft1236
不想每个文件都手动写 logfactory
2264 次点击
所在节点    Java
6 条回复
ipeony
2021-06-28 10:34:25 +08:00
目前在用这个库,比手写稍微方便一点
https://github.com/MicroUtils/kotlin-logging
yumerdev93
2021-06-28 10:48:30 +08:00
早上刚抄的
yumerdev93
2021-06-28 10:48:40 +08:00
@Retention(AnnotationRetention.RUNTIME)
@Target(AnnotationTarget.CLASS)
annotation class Slf4j {
companion object{
val <reified T> T.log:Logger
inline get() = LoggerFactory.getLogger(T::class.java)
}
}
MarkLeeyun
2021-06-28 14:39:59 +08:00
没有。
hdfg159
2021-06-30 08:08:40 +08:00
哈哈哈,没有,groovy 有
bitmin
2022-07-08 11:50:49 +08:00
试试写扩展

inline fun <reified T> T.logger(): Logger {
return LoggerFactory.getLogger(T::class.java)
}

在对象里使用的时候直接 logger() 取出来

或者再封装一次

inline fun <reified T> T.logTrace(block: () -> String?) {
val logger = logger()
if (logger.isTraceEnabled) {
logger.trace(block.invoke())
}
}

在类里使用举个例子

logTrance {
val a = ...
val b = ...
"$a:$b"
}

Kotlin 真的很方便啊,写自己的项目都不想用 Java

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/786170

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX