fix: Don't log everything to log files unless verbose logging is enabled

This commit is contained in:
Ahmad Ansori Palembani 2024-12-22 10:42:08 +07:00
parent acafe931f1
commit e65497baef
Signed by: null2264
GPG key ID: BA64F8B60AF3EFB6
2 changed files with 19 additions and 9 deletions

View file

@ -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<LogWriter> {
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"

View file

@ -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(