aboutsummaryrefslogtreecommitdiffstats
path: root/app/src/main/java/net/lacolaco/smileessence/Logger.kt
blob: ec41654c6c66b94fcabee993a27179aaf04f8838 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
package net.lacolaco.smileessence

import android.util.Log

object Logger {
    fun debug(message: Any) {
        Log.d(tag, message.toString())
    }

    fun info(message: Any) {
        Log.i(tag, message.toString())
    }

    fun error(message: Any) {
        Log.e(tag, message.toString())
    }

    fun warn(message: Any) {
        Log.w(tag, message.toString())
    }

    fun verbose(message: Any) {
        Log.v(tag, message.toString())
    }

    private val tag: String
        get() {
            val st = Thread.currentThread().stackTrace
            val baseIndex = st.indexOfFirst { it.methodName == "getTag" }
            assert(baseIndex != -1)
            assert(st.size >= baseIndex + 3)
            val basePackage = Logger.javaClass.name.removeSuffix(".Logger")
            return "SE (${st[baseIndex + 2].className.removePrefix(basePackage)}::${st[baseIndex + 2].methodName})"
        }
}