commit ae1aee3ce0f662db447021d51901630000d5e884
parent 0aa429c29b1462552106740497128c34dc7f543e
Author: rhunk <101876869+rhunk@users.noreply.github.com>
Date: Mon, 12 Aug 2024 01:14:21 +0200
fix(app): synchronized logs
Diffstat:
1 file changed, 21 insertions(+), 22 deletions(-)
diff --git a/app/src/main/kotlin/me/rhunk/snapenhance/LogManager.kt b/app/src/main/kotlin/me/rhunk/snapenhance/LogManager.kt
@@ -2,8 +2,6 @@ package me.rhunk.snapenhance
import android.util.Log
import com.google.gson.GsonBuilder
-import kotlinx.coroutines.Dispatchers
-import kotlinx.coroutines.launch
import me.rhunk.snapenhance.common.data.FileType
import me.rhunk.snapenhance.common.logger.AbstractLogger
import me.rhunk.snapenhance.common.logger.LogChannel
@@ -120,6 +118,7 @@ class LogManager(
private val LOG_LIFETIME = 24.hours
}
+ private val printLogLock = Any()
private val anonymizeLogs by lazy { !remoteSideContext.config.root.scripting.disableLogAnonymization.get() }
var lineAddListener = { _: LogLine -> }
@@ -146,28 +145,28 @@ class LogManager(
}
fun internalLog(tag: String, logLevel: LogLevel, message: Any?) {
- runCatching {
- val anonymizedMessage = message.toString().let {
- if (remoteSideContext.config.isInitialized() && anonymizeLogs)
- it.replace(uuidRegex, "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx")
- .replace(contentUriRegex, "content://xxx")
- .replace(filePathRegex, "xxxxxxxx.$2")
- else it
- }
- val line = LogLine(
- logLevel = logLevel,
- dateTime = getCurrentDateTime(),
- tag = tag,
- message = anonymizedMessage
- )
- remoteSideContext.coroutineScope.launch(Dispatchers.IO) {
+ synchronized(printLogLock) {
+ runCatching {
+ val anonymizedMessage = message.toString().let {
+ if (remoteSideContext.config.isInitialized() && anonymizeLogs)
+ it.replace(uuidRegex, "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx")
+ .replace(contentUriRegex, "content://xxx")
+ .replace(filePathRegex, "xxxxxxxx.$2")
+ else it
+ }
+ val line = LogLine(
+ logLevel = logLevel,
+ dateTime = getCurrentDateTime(),
+ tag = tag,
+ message = anonymizedMessage
+ )
logFile?.appendText("|$line\n", Charsets.UTF_8)
+ lineAddListener(line)
+ Log.println(logLevel.priority, tag, anonymizedMessage)
+ }.onFailure {
+ Log.println(Log.ERROR, tag, "Failed to log message: $message")
+ Log.println(Log.ERROR, tag, it.stackTraceToString())
}
- lineAddListener(line)
- Log.println(logLevel.priority, tag, anonymizedMessage)
- }.onFailure {
- Log.println(Log.ERROR, tag, "Failed to log message: $message")
- Log.println(Log.ERROR, tag, it.stackTraceToString())
}
}