How to insert a log in LogCat that when I click on it jumps to its line in code?

前端 未结 7 1885
没有蜡笔的小新
没有蜡笔的小新 2020-12-15 10:16

I want to insert a log in LogCat that when I click on it jumps to its line like some error logs that are generated by system.

Is it possible?

7条回答
  •  被撕碎了的回忆
    2020-12-15 10:42

    Please use this Tree with Timber.

    class MyLinkingTimberTree : Timber.DebugTree() {
        override fun createStackElementTag(element: StackTraceElement): String? {
            return makeClickableLineNumber(element)
        }
    
        private fun makeClickableLineNumber(
            element: StackTraceElement
        ): String {
            val className = element.fileName
            val methodName = element.methodName
            val lineNumber = element.lineNumber
            val fileName = element.fileName
            val stringBuilder = StringBuilder(className)
            .append(".")
            .append(methodName)
            .append(" (")
            .append(fileName)
            .append(":")
            .append(lineNumber)
            .append(")  ")
            return stringBuilder.toString()
        }
    }
    

    And then just instantiate it like this:

    class MyApplication: Application() {
    
        override fun onCreate() {
            super.onCreate()
            if(BuildConfig.DEBUG) {
                Timber.plant(MyLinkingTimberTree())
            }
        }
    }
    

    Then just use Timber normally:

    Timber.d("Currently Signed in:")
    

    And this is the result. Nice, isn't it? I hope you enjoy using it as much as I enjoyed making it! ;)

提交回复
热议问题