Skip to content

Commit f511be6

Browse files
committed
Merge branch 'replace-default-logging-tool-with-kermit-droid-704'
2 parents ac70101 + a4fbed0 commit f511be6

File tree

33 files changed

+179
-93
lines changed

33 files changed

+179
-93
lines changed

android/app/build.gradle.kts

+1
Original file line numberDiff line numberDiff line change
@@ -339,6 +339,7 @@ dependencies {
339339
ksp(Dependencies.Compose.destinationsKsp)
340340

341341
implementation(Dependencies.jodaTime)
342+
implementation(Dependencies.kermit)
342343
implementation(Dependencies.Koin.core)
343344
implementation(Dependencies.Koin.android)
344345
implementation(Dependencies.Koin.compose)

android/app/src/main/kotlin/net/mullvad/mullvadvpn/MullvadApplication.kt

+8-5
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,22 @@
11
package net.mullvad.mullvadvpn
22

33
import android.app.Application
4+
import co.touchlab.kermit.Logger
5+
import co.touchlab.kermit.Severity
46
import net.mullvad.mullvadvpn.di.appModule
57
import org.koin.android.ext.koin.androidContext
68
import org.koin.core.context.loadKoinModules
79
import org.koin.core.context.startKoin
810

9-
/**
10-
* In Android, separate instances of the application class (MullvadApplication) will be instantiated
11-
* for each process. That also means that a only common logic should be placed here.
12-
*/
11+
private const val LOG_TAG = "mullvad"
12+
1313
class MullvadApplication : Application() {
1414
override fun onCreate() {
1515
super.onCreate()
16-
// Used to create/start separate DI graphs for each process. Avoid non-common classes etc.
16+
Logger.setTag(LOG_TAG)
17+
if (!BuildConfig.DEBUG) {
18+
Logger.setMinSeverity(Severity.Info)
19+
}
1720
startKoin { androidContext(this@MullvadApplication) }
1821
loadKoinModules(listOf(appModule))
1922
}

android/app/src/main/kotlin/net/mullvad/mullvadvpn/util/ChangelogDataProvider.kt

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package net.mullvad.mullvadvpn.util
22

33
import android.content.res.AssetManager
4-
import android.util.Log
4+
import co.touchlab.kermit.Logger
55
import java.io.IOException
66

77
private const val CHANGELOG_FILE = "en-US/default.txt"
@@ -12,7 +12,7 @@ class ChangelogDataProvider(private var assets: AssetManager) : IChangelogDataPr
1212
return try {
1313
assets.open(CHANGELOG_FILE).bufferedReader().use { it.readText() }
1414
} catch (ex: IOException) {
15-
Log.e("mullvad", "Unable to read bundled changelog file.")
15+
Logger.e("Unable to read bundled changelog file.")
1616
EMPTY_DEFAULT_STRING_WHEN_UNABLE_TO_READ_CHANGELOG
1717
}
1818
}

android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/VpnSettingsViewModel.kt

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
package net.mullvad.mullvadvpn.viewmodel
22

3-
import android.util.Log
43
import androidx.lifecycle.ViewModel
54
import androidx.lifecycle.viewModelScope
5+
import co.touchlab.kermit.Logger
66
import java.net.InetAddress
77
import java.net.UnknownHostException
88
import kotlinx.coroutines.CoroutineDispatcher
@@ -259,7 +259,7 @@ class VpnSettingsViewModel(
259259
return try {
260260
map { InetAddress.getByName(it) }
261261
} catch (ex: UnknownHostException) {
262-
Log.e("mullvad", "Error parsing the DNS address list.")
262+
Logger.e("Error parsing the DNS address list.")
263263
emptyList()
264264
}
265265
}

android/buildSrc/src/main/kotlin/Dependencies.kt

+1
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ object Dependencies {
1111
"de.mannodermaus.junit5:android-test-extensions:${Versions.Android.junit}"
1212
const val junitAndroidTestRunner =
1313
"de.mannodermaus.junit5:android-test-runner:${Versions.Android.junit}"
14+
const val kermit = "co.touchlab:kermit:${Versions.kermit}"
1415
const val konsist = "com.lemonappdev:konsist:${Versions.konsist}"
1516
const val leakCanary = "com.squareup.leakcanary:leakcanary-android:${Versions.leakCanary}"
1617
const val mockkWebserver = "com.squareup.okhttp3:mockwebserver:${Versions.mockWebserver}"

android/buildSrc/src/main/kotlin/Versions.kt

+1
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ object Versions {
33
const val jodaTime = "2.12.7"
44
const val junit = "5.10.2"
55
const val jvmTarget = "17"
6+
const val kermit = "2.0.4"
67
const val konsist = "0.14.0"
78
const val kotlin = "1.9.24"
89
const val kotlinCompilerExtensionVersion = "1.5.14"

android/gradle/verification-metadata.xml

+64
Original file line numberDiff line numberDiff line change
@@ -1876,6 +1876,70 @@
18761876
<sha256 value="7cb296df197dbd0e31206b88691b7fe1731e1dc6bcf4e0228f432f32d126ff73" origin="Generated by Gradle"/>
18771877
</artifact>
18781878
</component>
1879+
<component group="co.touchlab" name="kermit" version="2.0.4">
1880+
<artifact name="kermit-2.0.4.module">
1881+
<sha256 value="7372faf3b7eec441e035783945b2df68aed2d81973653c176b2bccbd7509c163" origin="Generated by Gradle"/>
1882+
</artifact>
1883+
<artifact name="kermit-metadata-2.0.4.jar">
1884+
<sha256 value="e1626b72b856c82ee8e7e4fa47da0f4a73e6557a5c288532be409449b5574604" origin="Generated by Gradle"/>
1885+
</artifact>
1886+
</component>
1887+
<component group="co.touchlab" name="kermit-android" version="2.0.4">
1888+
<artifact name="kermit-android-2.0.4.module">
1889+
<sha256 value="5ff4cd4b242cfc26951bd205f64d7e8db7fd347239fe08472cb50b7e4c22fa35" origin="Generated by Gradle"/>
1890+
</artifact>
1891+
<artifact name="kermit-release.aar">
1892+
<sha256 value="328ff1193b273cd78feda107faa72e9579bad1006c06d89b1229d54c76836389" origin="Generated by Gradle"/>
1893+
</artifact>
1894+
</component>
1895+
<component group="co.touchlab" name="kermit-android-debug" version="2.0.4">
1896+
<artifact name="kermit-android-debug-2.0.4.module">
1897+
<sha256 value="96d8b24df55f669bdcd4b08220b7be7e475943b34272d06037500cf692085dda" origin="Generated by Gradle"/>
1898+
</artifact>
1899+
<artifact name="kermit-debug.aar">
1900+
<sha256 value="920fe5b89885d008789bf7b2f988b32b0d494d226d17ffbe3d164feed16acb08" origin="Generated by Gradle"/>
1901+
</artifact>
1902+
</component>
1903+
<component group="co.touchlab" name="kermit-core" version="2.0.4">
1904+
<artifact name="kermit-core-2.0.4.module">
1905+
<sha256 value="0808c6f3f9bbb3a3af22bffd1fe20629db5d2b83cdd3735c16efb7c663a272bf" origin="Generated by Gradle"/>
1906+
</artifact>
1907+
<artifact name="kermit-core-metadata-2.0.4.jar">
1908+
<sha256 value="ca561345823286541331691c25d9439b628303adb9fd3b570c8deda657dc3d58" origin="Generated by Gradle"/>
1909+
</artifact>
1910+
</component>
1911+
<component group="co.touchlab" name="kermit-core-android" version="2.0.4">
1912+
<artifact name="kermit-core-android-2.0.4.module">
1913+
<sha256 value="6edb8a88b429cfda8da931ad9c76c4a22d31dd92e2613bf63c43ba346ea9c838" origin="Generated by Gradle"/>
1914+
</artifact>
1915+
<artifact name="kermit-core-release.aar">
1916+
<sha256 value="d32048f982256fb27e339ec16581bed0fc65ea6008ff5984b1f9e1dbf948955f" origin="Generated by Gradle"/>
1917+
</artifact>
1918+
</component>
1919+
<component group="co.touchlab" name="kermit-core-android-debug" version="2.0.4">
1920+
<artifact name="kermit-core-android-debug-2.0.4.module">
1921+
<sha256 value="b9e9f5da2b7878d06f845a1f86816e2510be22a7f745ef37bb7d1819d6a20d98" origin="Generated by Gradle"/>
1922+
</artifact>
1923+
<artifact name="kermit-core-debug.aar">
1924+
<sha256 value="820c6968ecc6aaf95beaab76a06423e6bf662c877689c45fc3b84b1b93742faf" origin="Generated by Gradle"/>
1925+
</artifact>
1926+
</component>
1927+
<component group="co.touchlab" name="kermit-core-jvm" version="2.0.4">
1928+
<artifact name="kermit-core-jvm-2.0.4.jar">
1929+
<sha256 value="53736211edeeed3cdbc3b96b8b27de7faf50aeb731e1fff92a0e4472505d24ba" origin="Generated by Gradle"/>
1930+
</artifact>
1931+
<artifact name="kermit-core-jvm-2.0.4.module">
1932+
<sha256 value="c58d66eeb916881e49ca1fcf96d5bb16ce8afb562b12e83b055a51a33185ef29" origin="Generated by Gradle"/>
1933+
</artifact>
1934+
</component>
1935+
<component group="co.touchlab" name="kermit-jvm" version="2.0.4">
1936+
<artifact name="kermit-jvm-2.0.4.jar">
1937+
<sha256 value="bdde9a1f3d02d205c56c133617d7c99dc5768bc85c7b84e697c87da10715ab77" origin="Generated by Gradle"/>
1938+
</artifact>
1939+
<artifact name="kermit-jvm-2.0.4.module">
1940+
<sha256 value="91f1e67346ed6609d2eda33532d53e9249ca095779c286ce282f3e693fb6a350" origin="Generated by Gradle"/>
1941+
</artifact>
1942+
</component>
18791943
<component group="co.touchlab" name="stately-concurrency" version="2.0.5">
18801944
<artifact name="stately-concurrency-2.0.5.module">
18811945
<sha256 value="51c46777cb554277aa9b56f41dd108bd000e2ef9ae38fc4af2d2378254555aef" origin="Generated by Gradle"/>

android/lib/common/src/main/kotlin/net/mullvad/mullvadvpn/lib/common/constant/LogTag.kt

-3
This file was deleted.

android/lib/daemon-grpc/build.gradle.kts

+1
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ dependencies {
5959
implementation(project(Dependencies.Mullvad.talpidLib))
6060

6161
implementation(Dependencies.jodaTime)
62+
implementation(Dependencies.kermit)
6263
implementation(Dependencies.Kotlin.stdlib)
6364
implementation(Dependencies.KotlinX.coroutinesCore)
6465
implementation(Dependencies.KotlinX.coroutinesAndroid)

android/lib/daemon-grpc/src/main/kotlin/net/mullvad/mullvadvpn/lib/daemon/grpc/ManagementService.kt

+2-3
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
package net.mullvad.mullvadvpn.lib.daemon.grpc
22

33
import android.net.LocalSocketAddress
4-
import android.util.Log
54
import arrow.core.Either
65
import arrow.core.raise.either
76
import arrow.core.raise.ensure
87
import arrow.optics.copy
98
import arrow.optics.dsl.index
109
import arrow.optics.typeclasses.Index
10+
import co.touchlab.kermit.Logger
1111
import com.google.protobuf.BoolValue
1212
import com.google.protobuf.Empty
1313
import com.google.protobuf.StringValue
@@ -38,7 +38,6 @@ import kotlinx.coroutines.launch
3838
import kotlinx.coroutines.withContext
3939
import mullvad_daemon.management_interface.ManagementInterface
4040
import mullvad_daemon.management_interface.ManagementServiceGrpcKt
41-
import net.mullvad.mullvadvpn.lib.common.constant.TAG
4241
import net.mullvad.mullvadvpn.lib.daemon.grpc.mapper.fromDomain
4342
import net.mullvad.mullvadvpn.lib.daemon.grpc.mapper.toDomain
4443
import net.mullvad.mullvadvpn.lib.daemon.grpc.util.LogInterceptor
@@ -204,7 +203,7 @@ class ManagementService(
204203
launch {
205204
grpc.eventsListen(Empty.getDefaultInstance()).collect { event ->
206205
if (extensiveLogging) {
207-
Log.d(TAG, "Event: $event")
206+
Logger.v("Event: $event")
208207
}
209208
@Suppress("WHEN_ENUM_CAN_BE_NULL_IN_JAVA")
210209
when (event.eventCase) {
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,19 @@
11
package net.mullvad.mullvadvpn.lib.daemon.grpc.util
22

3-
import android.util.Log
3+
import co.touchlab.kermit.Logger
44
import io.grpc.CallOptions
55
import io.grpc.Channel
66
import io.grpc.ClientCall
77
import io.grpc.ClientInterceptor
88
import io.grpc.MethodDescriptor
9-
import net.mullvad.mullvadvpn.lib.common.constant.TAG
109

1110
internal class LogInterceptor : ClientInterceptor {
1211
override fun <ReqT : Any?, RespT : Any?> interceptCall(
1312
method: MethodDescriptor<ReqT, RespT>?,
1413
callOptions: CallOptions?,
1514
next: Channel?
1615
): ClientCall<ReqT, RespT> {
17-
Log.d(TAG, "Intercepted call: ${method?.fullMethodName}")
16+
Logger.v("Intercepted call: ${method?.fullMethodName}")
1817
return next!!.newCall(method, callOptions)
1918
}
2019
}

android/lib/map/build.gradle.kts

+2-4
Original file line numberDiff line numberDiff line change
@@ -35,12 +35,10 @@ android {
3535
}
3636

3737
dependencies {
38-
39-
//Model
4038
implementation(project(Dependencies.Mullvad.modelLib))
4139

40+
implementation(Dependencies.AndroidX.lifecycleRuntimeKtx)
4241
implementation(Dependencies.Compose.ui)
4342
implementation(Dependencies.Compose.foundation)
44-
45-
implementation(Dependencies.AndroidX.lifecycleRuntimeKtx)
43+
implementation(Dependencies.kermit)
4644
}

android/lib/map/src/main/kotlin/net/mullvad/mullvadvpn/lib/map/internal/GLHelper.kt

+3-3
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@ package net.mullvad.mullvadvpn.lib.map.internal
22

33
import android.opengl.GLES20
44
import android.opengl.Matrix
5-
import android.util.Log
65
import androidx.compose.ui.graphics.Color
6+
import co.touchlab.kermit.Logger
77
import java.nio.Buffer
88
import java.nio.ByteBuffer
99
import java.nio.FloatBuffer
@@ -31,7 +31,7 @@ internal fun initShaderProgram(vsSource: String, fsSource: String): Int {
3131
GLES20.glGetProgramiv(program, GLES20.GL_LINK_STATUS, linked, 0)
3232
if (linked[0] == GLES20.GL_FALSE) {
3333
val infoLog = GLES20.glGetProgramInfoLog(program)
34-
Log.e("GLHelper", "Could not link program: $infoLog")
34+
Logger.e("Could not link program: $infoLog")
3535
GLES20.glDeleteProgram(program)
3636
error("Could not link program with vsSource: $vsSource and fsSource: $fsSource")
3737
}
@@ -54,7 +54,7 @@ private fun loadShader(type: Int, shaderCode: String): Int {
5454
GLES20.glGetShaderiv(shader, GLES20.GL_COMPILE_STATUS, compiled, 0)
5555
if (compiled[0] == GLES20.GL_FALSE) {
5656
val infoLog = GLES20.glGetShaderInfoLog(shader)
57-
Log.e("GLHelper", "Could not compile shader $type:$infoLog")
57+
Logger.e("Could not compile shader $type:$infoLog")
5858
GLES20.glDeleteShader(shader)
5959

6060
error("Could not compile shader with shaderCode: $shaderCode")

android/lib/shared/build.gradle.kts

+1
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ dependencies {
3232
implementation(project(Dependencies.Mullvad.modelLib))
3333

3434
implementation(Dependencies.Arrow.core)
35+
implementation(Dependencies.kermit)
3536
implementation(Dependencies.Kotlin.stdlib)
3637
implementation(Dependencies.KotlinX.coroutinesAndroid)
3738
implementation(Dependencies.jodaTime)

android/lib/shared/src/main/kotlin/net/mullvad/mullvadvpn/lib/shared/DeviceRepository.kt

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package net.mullvad.mullvadvpn.lib.shared
22

3-
import android.util.Log
43
import arrow.core.Either
4+
import co.touchlab.kermit.Logger
55
import kotlinx.coroutines.CoroutineDispatcher
66
import kotlinx.coroutines.CoroutineScope
77
import kotlinx.coroutines.Dispatchers
@@ -36,7 +36,7 @@ class DeviceRepository(
3636
managementService.getDeviceList(accountNumber)
3737

3838
suspend fun updateDevice() {
39-
Log.d("mullvad", "Update device")
39+
Logger.i("Update device")
4040
managementService.updateDevice()
4141
}
4242
}

android/lib/talpid/build.gradle.kts

+2-1
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,8 @@ android {
2727
dependencies {
2828
implementation(project(Dependencies.Mullvad.modelLib))
2929

30+
implementation(Dependencies.AndroidX.lifecycleService)
31+
implementation(Dependencies.kermit)
3032
implementation(Dependencies.Kotlin.stdlib)
3133
implementation(Dependencies.KotlinX.coroutinesAndroid)
32-
implementation(Dependencies.AndroidX.lifecycleService)
3334
}

android/lib/talpid/src/main/kotlin/net/mullvad/talpid/TalpidVpnService.kt

+2-3
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
package net.mullvad.talpid
22

33
import android.os.ParcelFileDescriptor
4-
import android.util.Log
54
import androidx.annotation.CallSuper
5+
import co.touchlab.kermit.Logger
66
import java.net.Inet4Address
77
import java.net.Inet6Address
88
import java.net.InetAddress
@@ -106,8 +106,7 @@ open class TalpidVpnService : LifecycleVpnService() {
106106
// since apps then may leak DNS requests.
107107
// https://issuetracker.google.com/issues/337961996
108108
if (invalidDnsServerAddresses.size == config.dnsServers.size) {
109-
Log.w(
110-
"mullvad",
109+
Logger.w(
111110
"All DNS servers invalid or non set, using fallback DNS server to " +
112111
"minimize leaks, dnsServers.isEmpty(): ${config.dnsServers.isEmpty()}"
113112
)

android/service/build.gradle.kts

+1
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ dependencies {
6060
implementation(Dependencies.AndroidX.coreKtx)
6161
implementation(Dependencies.AndroidX.lifecycleService)
6262
implementation(Dependencies.Arrow.core)
63+
implementation(Dependencies.kermit)
6364
implementation(Dependencies.Koin.android)
6465
implementation(Dependencies.Koin.core)
6566
implementation(Dependencies.Kotlin.stdlib)

0 commit comments

Comments
 (0)