Improve logging

This commit is contained in:
Mygod
2020-08-08 07:51:47 +08:00
parent 6b10334919
commit c3b2d476e5
4 changed files with 64 additions and 58 deletions

View File

@@ -2,24 +2,22 @@ package be.mygod.vpnhotspot.root
import android.os.Parcelable
import android.util.Log
import be.mygod.librootkotlinx.RootCommandNoResult
import be.mygod.librootkotlinx.RootServer
import be.mygod.librootkotlinx.RootSession
import be.mygod.librootkotlinx.systemContext
import be.mygod.librootkotlinx.*
import be.mygod.vpnhotspot.App.Companion.app
import be.mygod.vpnhotspot.BuildConfig
import be.mygod.vpnhotspot.util.Services
import kotlinx.android.parcel.Parcelize
import timber.log.Timber
object RootManager : RootSession() {
object RootManager : RootSession(), Logger {
@Parcelize
class RootInit : RootCommandNoResult {
override suspend fun execute(): Parcelable? {
RootServer.isDebugEnabled = BuildConfig.DEBUG
Timber.plant(object : Timber.DebugTree() {
override fun log(priority: Int, tag: String?, message: String, t: Throwable?) {
if (priority >= Log.WARN) System.err.println("$priority/$tag: $message")
if (priority >= Log.WARN) {
System.err.println("$priority/$tag: $message")
t?.printStackTrace()
}
if (t == null) {
Log.println(priority, tag, message)
} else {
@@ -29,19 +27,20 @@ object RootManager : RootSession() {
}
}
})
Logger.me = RootManager
Services.init { systemContext }
return null
}
}
override fun createServer() = RootServer { Timber.w(it) }
override fun d(m: String?, t: Throwable?) = Timber.d(t, m)
override fun e(m: String?, t: Throwable?) = Timber.e(t, m)
override fun i(m: String?, t: Throwable?) = Timber.i(t, m)
override fun w(m: String?, t: Throwable?) = Timber.w(t, m)
override suspend fun initServer(server: RootServer) {
RootServer.isDebugEnabled = BuildConfig.DEBUG
try {
server.init(app.deviceStorage)
} finally {
server.readUnexpectedStderr()?.let { Timber.e(it) }
}
Logger.me = this
server.init(app.deviceStorage)
server.execute(RootInit())
}
}