diff --git a/app/src/main/java/eu/kanade/tachiyomi/App.kt b/app/src/main/java/eu/kanade/tachiyomi/App.kt index 17fbee9810..b929105a1c 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/App.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/App.kt @@ -22,6 +22,7 @@ import androidx.lifecycle.LifecycleOwner import androidx.lifecycle.ProcessLifecycleOwner import androidx.lifecycle.lifecycleScope import androidx.multidex.MultiDex +import co.touchlab.kermit.LogWriter import co.touchlab.kermit.Logger import coil3.ImageLoader import coil3.PlatformContext @@ -113,7 +114,12 @@ open class App : Application(), DefaultLifecycleObserver, SingletonImageLoader.F val scope = ProcessLifecycleOwner.get().lifecycleScope - Logger.setToDefault(buildLogWritersToAdd(storageManager.getLogsDirectory())) + networkPreferences.verboseLogging().changes() + .onEach { enabled -> + // FlexibleAdapter.enableLogs(if (enabled) Level.VERBOSE else Level.SUPPRESS) + Logger.setToDefault(buildLogWritersToAdd(storageManager.getLogsDirectory(), enabled)) + } + .launchIn(scope) basePreferences.crashReport().changes() .onEach { @@ -139,12 +145,6 @@ open class App : Application(), DefaultLifecycleObserver, SingletonImageLoader.F .onEach { ImageUtil.hardwareBitmapThreshold = it } .launchIn(scope) -// networkPreferences.verboseLogging().changes() -// .onEach { enabled -> -// FlexibleAdapter.enableLogs(if (enabled) Level.VERBOSE else Level.SUPPRESS) -// } -// .launchIn(scope) - scope.launchIO { with(TachiyomiWidgetManager()) { this@App.init() } } @@ -289,12 +289,18 @@ open class App : Application(), DefaultLifecycleObserver, SingletonImageLoader.F } } +fun buildLogWritersToAdd(logPath: UniFile?): List { + val networkPreferences: NetworkPreferences = Injekt.get() + return buildLogWritersToAdd(logPath, networkPreferences.verboseLogging().get()) +} + fun buildLogWritersToAdd( logPath: UniFile?, + isVerbose: Boolean, ) = buildList { if (!BuildConfig.DEBUG) add(CrashlyticsLogWriter()) - if (logPath != null) add(RollingUniFileLogWriter(logPath)) + if (logPath != null) add(RollingUniFileLogWriter(logPath = logPath, isVerbose = isVerbose)) } private const val ACTION_DISABLE_INCOGNITO_MODE = "tachi.action.DISABLE_INCOGNITO_MODE" diff --git a/app/src/main/java/yokai/core/RollingUniFileLogWriter.kt b/app/src/main/java/yokai/core/RollingUniFileLogWriter.kt index 4760cd5dbd..a9a2d2ec80 100644 --- a/app/src/main/java/yokai/core/RollingUniFileLogWriter.kt +++ b/app/src/main/java/yokai/core/RollingUniFileLogWriter.kt @@ -43,7 +43,8 @@ class RollingUniFileLogWriter( private val maxRolledLogFiles: Int = 5, private val maxLogFiles: Int = 5, private val messageStringFormatter: MessageStringFormatter = DefaultFormatter, - private val messageDateFormat: DateFormat = SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS", Locale.getDefault()) + private val messageDateFormat: DateFormat = SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS", Locale.getDefault()), + private val isVerbose: Boolean = false, ) : LogWriter() { @OptIn(DelicateCoroutinesApi::class, ExperimentalCoroutinesApi::class) private val coroutineScope = CoroutineScope( @@ -64,6 +65,9 @@ class RollingUniFileLogWriter( } } + override fun isLoggable(tag: String, severity: Severity): Boolean = + severity >= if (isVerbose) Severity.Debug else Severity.Info + override fun log(severity: Severity, message: String, tag: String, throwable: Throwable?) { bufferLog( formatMessage(