Replace Timber with Square Logcat and make logging configurable (#6062)
* Replace Timber with Square Logcat
* Configurable logger
(cherry picked from commit 2e127dff1f)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/App.kt
# app/src/main/java/eu/kanade/tachiyomi/data/backup/full/FullBackupManager.kt
# app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadManager.kt
# app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateService.kt
# app/src/main/java/eu/kanade/tachiyomi/source/LocalSource.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/browse/extension/details/SourcePreferencesController.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/BrowseSourceController.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/BrowseSourcePresenter.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaController.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaPresenter.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/more/AboutController.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/reader/loader/ChapterLoader.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/reader/loader/HttpPageLoader.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/pager/PagerViewer.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/pager/PagerViewerAdapter.kt
This commit is contained in:
@@ -0,0 +1,24 @@
|
||||
package exh.log
|
||||
|
||||
import com.elvishew.xlog.XLog
|
||||
import logcat.LogPriority
|
||||
import logcat.LogcatLogger
|
||||
|
||||
class XLogLogcatLogger : LogcatLogger {
|
||||
|
||||
override fun log(priority: LogPriority, tag: String, message: String) {
|
||||
XLog.tag(tag).log(priority.toXLogLevel(), message)
|
||||
}
|
||||
|
||||
private fun LogPriority.toXLogLevel(): Int {
|
||||
return when (this) {
|
||||
LogPriority.ASSERT -> LogLevel.None.int
|
||||
LogPriority.ERROR -> LogLevel.Error.int
|
||||
LogPriority.WARN -> LogLevel.Warn.int
|
||||
LogPriority.INFO -> LogLevel.Info.int
|
||||
LogPriority.DEBUG -> LogLevel.Debug.int
|
||||
LogPriority.VERBOSE -> LogLevel.Verbose.int
|
||||
else -> LogLevel.All.int
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,35 +0,0 @@
|
||||
package exh.log
|
||||
|
||||
import android.util.Log
|
||||
import com.elvishew.xlog.XLog
|
||||
import timber.log.Timber
|
||||
|
||||
class XLogTree : Timber.DebugTree() {
|
||||
override fun log(priority: Int, tag: String?, message: String, t: Throwable?) {
|
||||
if (tag != null) {
|
||||
if (t != null) {
|
||||
XLog.tag(tag).log(priority.toXLogLevel(), message, t)
|
||||
} else {
|
||||
XLog.tag(tag).log(priority.toXLogLevel(), message)
|
||||
}
|
||||
} else {
|
||||
if (t != null) {
|
||||
XLog.log(priority.toXLogLevel(), message, t)
|
||||
} else {
|
||||
XLog.log(priority.toXLogLevel(), message)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun Int.toXLogLevel(): Int {
|
||||
return when (this) {
|
||||
Log.ASSERT -> LogLevel.None.int
|
||||
Log.ERROR -> LogLevel.Error.int
|
||||
Log.WARN -> LogLevel.Warn.int
|
||||
Log.INFO -> LogLevel.Info.int
|
||||
Log.DEBUG -> LogLevel.Debug.int
|
||||
Log.VERBOSE -> LogLevel.Verbose.int
|
||||
else -> LogLevel.All.int
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -11,6 +11,7 @@ import eu.kanade.tachiyomi.source.model.SManga
|
||||
import eu.kanade.tachiyomi.ui.browse.source.browse.NoResultsException
|
||||
import eu.kanade.tachiyomi.ui.browse.source.browse.Pager
|
||||
import eu.kanade.tachiyomi.util.lang.withIOContext
|
||||
import eu.kanade.tachiyomi.util.system.logcat
|
||||
import exh.util.MangaType
|
||||
import exh.util.mangaType
|
||||
import kotlinx.serialization.decodeFromString
|
||||
@@ -23,10 +24,10 @@ import kotlinx.serialization.json.jsonArray
|
||||
import kotlinx.serialization.json.jsonObject
|
||||
import kotlinx.serialization.json.jsonPrimitive
|
||||
import kotlinx.serialization.json.put
|
||||
import logcat.LogPriority
|
||||
import okhttp3.HttpUrl.Companion.toHttpUrlOrNull
|
||||
import okhttp3.MediaType.Companion.toMediaTypeOrNull
|
||||
import okhttp3.RequestBody.Companion.toRequestBody
|
||||
import timber.log.Timber
|
||||
import uy.kohesive.injekt.Injekt
|
||||
import uy.kohesive.injekt.api.get
|
||||
|
||||
@@ -53,7 +54,7 @@ class MyAnimeList : API("https://api.jikan.moe/v3/") {
|
||||
val data = Json.decodeFromString<JsonObject>(body)
|
||||
val recommendations = data["recommendations"] as? JsonArray
|
||||
return recommendations?.filterIsInstance<JsonObject>()?.map { rec ->
|
||||
Timber.tag("RECOMMENDATIONS").d("MYANIMELIST > RECOMMENDATION: %s", rec["title"]?.jsonPrimitive?.content.orEmpty())
|
||||
logcat { "MYANIMELIST > RECOMMENDATION: " + rec["title"]?.jsonPrimitive?.content.orEmpty() }
|
||||
SManga.create().apply {
|
||||
title = rec["title"]!!.jsonPrimitive.content
|
||||
thumbnail_url = rec["image_url"]!!.jsonPrimitive.content
|
||||
@@ -178,7 +179,7 @@ class Anilist : API("https://graphql.anilist.co/") {
|
||||
return result["recommendations"]?.jsonObject?.get("edges")?.jsonArray?.map {
|
||||
val rec = it.jsonObject["node"]!!.jsonObject["mediaRecommendation"]!!.jsonObject
|
||||
val recTitle = getTitle(rec)
|
||||
Timber.tag("RECOMMENDATIONS").d("ANILIST > RECOMMENDATION: %s", recTitle)
|
||||
logcat { "ANILIST > RECOMMENDATION: $recTitle" }
|
||||
SManga.create().apply {
|
||||
title = recTitle
|
||||
thumbnail_url = rec["coverImage"]!!.jsonObject["large"]!!.jsonPrimitive.content
|
||||
@@ -202,10 +203,10 @@ open class RecommendsPager(
|
||||
val recs = apiList.firstNotNullOfOrNull { (key, api) ->
|
||||
try {
|
||||
val recs = api.getRecsBySearch(manga.originalTitle)
|
||||
Timber.tag("RECOMMENDATIONS").d("%s > Results: %s", key, recs.count())
|
||||
logcat { key.toString() + " > Results: " + recs.count() }
|
||||
recs
|
||||
} catch (e: Exception) {
|
||||
Timber.tag("RECOMMENDATIONS").e("%s > Error: %s", key, e.message)
|
||||
logcat(LogPriority.ERROR, e) { key.toString() }
|
||||
null
|
||||
}
|
||||
}.orEmpty()
|
||||
|
||||
Reference in New Issue
Block a user