object LogUtils {
fun log(message: String?) {
log(null, message)
}
fun log(tag: String? =null, message: String?) {
var content = message
if (message.isNullOrEmpty()) {
content ="NULL "
}
val trace = Throwable().fillInStackTrace().stackTrace
var caller: String? =""
var callingClass =""
var callFile: String? =""
var lineNumber =0
for (iin 2 until trace.size) {
val clazz: Class<*> = trace[i].javaClass
if (clazz != LogUtils::class.java) {
callingClass = trace[i].className
callingClass = callingClass.substring(
callingClass
.lastIndexOf('.') +1
)
caller = trace[i].methodName
callFile = trace[i].fileName
lineNumber = trace[i].lineNumber
break
}
}
// val method = java.lang.String.format(
// Locale.US,
// "[%03d] %s.%s(%s:%d)",
// Thread.currentThread().id,
// callingClass,
// caller,
// callFile,
// lineNumber
// )
val method ="($callFile,$lineNumber)"
Log.d(tag ?: callFile, content + method)
}
}
LogUtils
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 刚刚的重新排版一下 /** Created by sakura on 2016/9/29./public clas...
- //Clojure入门教程: Clojure – Functional Programming for the J...