Store log files in subfolder based on the homeserver domain.

This commit is contained in:
Benoit Marty 2025-08-07 11:31:05 +02:00
parent 37786352ba
commit 18c325560b
9 changed files with 90 additions and 22 deletions

View file

@ -71,9 +71,9 @@ class RustMatrixAuthenticationService @Inject constructor(
private var currentClient: Client? = null
private var currentHomeserver = MutableStateFlow<MatrixHomeServerDetails?>(null)
private var newMatrixClientObserver: ((MatrixClient) -> Unit)? = null
private val newMatrixClientObservers = mutableListOf<(MatrixClient) -> Unit>()
override fun listenToNewMatrixClients(lambda: (MatrixClient) -> Unit) {
newMatrixClientObserver = lambda
newMatrixClientObservers.add(lambda)
}
private fun rotateSessionPath(): SessionPaths {
@ -155,7 +155,8 @@ class RustMatrixAuthenticationService @Inject constructor(
passphrase = pendingPassphrase,
sessionPaths = currentSessionPaths,
)
newMatrixClientObserver?.invoke(rustMatrixClientFactory.create(client))
val matrixClient = rustMatrixClientFactory.create(client)
newMatrixClientObservers.forEach { it.invoke(matrixClient) }
sessionStore.storeData(sessionData)
// Clean up the strong reference held here since it's no longer necessary
@ -246,7 +247,8 @@ class RustMatrixAuthenticationService @Inject constructor(
pendingOAuthAuthorizationData?.close()
pendingOAuthAuthorizationData = null
newMatrixClientObserver?.invoke(rustMatrixClientFactory.create(client))
val matrixClient = rustMatrixClientFactory.create(client)
newMatrixClientObservers.forEach { it.invoke(matrixClient) }
sessionStore.storeData(sessionData)
// Clean up the strong reference held here since it's no longer necessary
@ -290,7 +292,8 @@ class RustMatrixAuthenticationService @Inject constructor(
passphrase = pendingPassphrase,
sessionPaths = emptySessionPaths,
)
newMatrixClientObserver?.invoke(rustMatrixClientFactory.create(client))
val matrixClient = rustMatrixClientFactory.create(client)
newMatrixClientObservers.forEach { it.invoke(matrixClient) }
sessionStore.storeData(sessionData)
// Clean up the strong reference held here since it's no longer necessary

View file

@ -15,6 +15,7 @@ import io.element.android.libraries.matrix.api.tracing.TracingConfiguration
import io.element.android.libraries.matrix.api.tracing.TracingService
import io.element.android.libraries.matrix.api.tracing.WriteToFilesConfiguration
import org.matrix.rustcomponents.sdk.TracingFileConfiguration
import org.matrix.rustcomponents.sdk.reloadTracingFileWriter
import timber.log.Timber
import javax.inject.Inject
@ -23,6 +24,12 @@ class RustTracingService @Inject constructor(private val buildMeta: BuildMeta) :
override fun createTimberTree(target: String): Timber.Tree {
return RustTracingTree(target = target, retrieveFromStackTrace = buildMeta.isDebuggable)
}
override fun updateWriteToFilesConfiguration(config: WriteToFilesConfiguration) {
config.toTracingFileConfiguration()?.let {
reloadTracingFileWriter(it)
}
}
}
private fun LogLevel.toRustLogLevel(): org.matrix.rustcomponents.sdk.LogLevel {