开源框架JetpackMvvm中日志工具类 稍做修改 分享(之前整理了Timber 淘汰了)
1.在项目工具类型module中创建"LogExt.kt"代码如下
import android.util.Log
/**
* desc:日志打印工具
*/
private var TAG = "data_sense_log"
internal fun String?.setLogTag() {
this?.let {
TAG = it
}
}
//是否显示日志 默认打开
private var LogDisplayConfig = true
//设置日志显示开关
internal fun Boolean.setLogConfig() {
this.let {
LogDisplayConfig = it
}
}
private enum class LEVEL {
V, D, I, W, E
}
fun String.logV(tag: String = TAG) = log(LEVEL.V, tag, this)
fun String.logD(tag: String = TAG) = log(LEVEL.D, tag, this)
fun String.logI(tag: String = TAG) = log(LEVEL.I, tag, this)
fun String.logW(tag: String = TAG) = log(LEVEL.W, tag, this)
fun String.logE(tag: String = TAG) = log(LEVEL.E, tag, this)
/**
* log
*
* @param level
* @param tag
* @param message
*/
private fun log(level: LEVEL, tag: String, message: String) {
if (!LogDisplayConfig) return
when (level) {
LEVEL.V -> Log.v(tag, message)
LEVEL.D -> Log.d(tag, message)
LEVEL.I -> Log.i(tag, message)
LEVEL.W -> Log.w(tag, message)
LEVEL.E -> Log.e(tag, message)
}
}
在工具module中提供app调用的接口(ModuleConfig.kt)
fun Application.initLogConfig(logTag: String?,logSta :Boolean = true) {
logTag.setLogTag()
logSta.setLogConfig()
}
application设置
override fun onCreate() {
super.onCreate()
//根据BuildConfig设置是否显示日志信息
initLogConfig("my_app", BuildConfig.DEBUG)
}
"this is log info".logD()
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- huatuo9.cn 版权所有 赣ICP备2023008801号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务