android – 方便的Kotlin LoggerFactory简化

android – 方便的Kotlin LoggerFactory简化,第1张

概述使用kotlin使用SLF4J或其他日志记录方法最方便的方法是什么? 通常开发人员忙于样板代码 private val logger: Logger = LoggerFactory.getLogger(this::class.java) 在每个班级中获得适当的记录器? 用Kotlin统一/简化这个的最方便的方法是什么? 这是一个简单的示例,它从绑定的可调用引用或标准属性返回一个延迟初始化的记录器. 使用kotlin使用SLF4J或其他日志记录方法最方便的方法是什么?

通常开发人员忙于样板代码

private val logger: Logger = LoggerFactory.getLogger(this::class.java)

在每个班级中获得适当的记录器?

用Kotlin统一/简化这个的最方便的方法是什么?

解决方法 这是一个简单的示例,它从绑定的可调用引用或标准属性返回一个延迟初始化的记录器.我更喜欢从可调用引用调用,因为::表示反射(与日志记录相关).

提供Lazy< Logger>的类:

class LoggingProvIDer<T : Any>(val clazz: KClass<T>) {  operator fun provIDeDelegate(inst: Any?,property: KProperty<*>) =      lazy { LoggerFactory.getLogger(clazz.java) }}

调用它们的内联函数:

inline fun <reifIEd T : Any> KCallable<T>.logger() =   LoggingProvIDer(T::class)inline fun <reifIEd T : Any> T.logger() =   LoggingProvIDer(T::class)

这是使用它们的一个例子.初始化程序中的require断言显示记录器共享一个引用:

class Foo {  val self: Foo = this  val logger by this.logger()  val callableLogger by this::self.logger()  init {    require(logger === callableLogger)  }}
总结

以上是内存溢出为你收集整理的android – 方便的Kotlin LoggerFactory简化全部内容,希望文章能够帮你解决android – 方便的Kotlin LoggerFactory简化所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1135006.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存