all: migrate logging to Napier

This commit is contained in:
Harsh Shandilya 2022-05-03 22:49:49 +05:30
parent 239cfb753f
commit 9b9e924475
No known key found for this signature in database
GPG key ID: 366D7BBAD1031E80
7 changed files with 17 additions and 9 deletions

View file

@ -1,7 +1,6 @@
package dev.msfjarvis.claw.android.injection package dev.msfjarvis.claw.android.injection
import android.content.Context import android.content.Context
import android.util.Log
import com.jakewharton.retrofit2.converter.kotlinx.serialization.asConverterFactory import com.jakewharton.retrofit2.converter.kotlinx.serialization.asConverterFactory
import dagger.Lazy import dagger.Lazy
import dagger.Module import dagger.Module
@ -10,6 +9,7 @@ import dagger.hilt.InstallIn
import dagger.hilt.android.qualifiers.ApplicationContext import dagger.hilt.android.qualifiers.ApplicationContext
import dagger.hilt.components.SingletonComponent import dagger.hilt.components.SingletonComponent
import dev.msfjarvis.claw.api.LobstersApi import dev.msfjarvis.claw.api.LobstersApi
import io.github.aakira.napier.Napier
import kotlinx.serialization.ExperimentalSerializationApi import kotlinx.serialization.ExperimentalSerializationApi
import kotlinx.serialization.json.Json import kotlinx.serialization.json.Json
import okhttp3.Cache import okhttp3.Cache
@ -34,7 +34,7 @@ object ApiModule {
.cache(cache.get()) .cache(cache.get())
.addNetworkInterceptor { chain -> .addNetworkInterceptor { chain ->
val request = chain.request() val request = chain.request()
Log.d("LobstersApi", "${request.method}: ${request.url}") Napier.d(tag = "LobstersApi") { "${request.method}: ${request.url}" }
chain.proceed(request) chain.proceed(request)
} }
.build() .build()

View file

@ -1,10 +1,10 @@
package dev.msfjarvis.claw.android.viewmodel package dev.msfjarvis.claw.android.viewmodel
import android.util.Log
import app.cash.sqldelight.coroutines.asFlow import app.cash.sqldelight.coroutines.asFlow
import app.cash.sqldelight.coroutines.mapToList import app.cash.sqldelight.coroutines.mapToList
import dev.msfjarvis.claw.database.LobstersDatabase import dev.msfjarvis.claw.database.LobstersDatabase
import dev.msfjarvis.claw.database.local.SavedPost import dev.msfjarvis.claw.database.local.SavedPost
import io.github.aakira.napier.Napier
import javax.inject.Inject import javax.inject.Inject
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext import kotlinx.coroutines.withContext
@ -18,12 +18,16 @@ constructor(
val savedPosts = savedPostQueries.selectAllPosts().asFlow().mapToList() val savedPosts = savedPostQueries.selectAllPosts().asFlow().mapToList()
suspend fun savePost(post: SavedPost) { suspend fun savePost(post: SavedPost) {
Log.d("SavedPostsRepository", "Saving post: ${post.shortId}") Napier.d(tag = TAG) { "Saving post: ${post.shortId}" }
withContext(Dispatchers.IO) { savedPostQueries.insertOrReplacePost(post) } withContext(Dispatchers.IO) { savedPostQueries.insertOrReplacePost(post) }
} }
suspend fun removePost(post: SavedPost) { suspend fun removePost(post: SavedPost) {
Log.d("SavedPostsRepository", "Removing post: ${post.shortId}") Napier.d(tag = TAG) { "Removing post: ${post.shortId}" }
withContext(Dispatchers.IO) { savedPostQueries.deletePost(post.shortId) } withContext(Dispatchers.IO) { savedPostQueries.deletePost(post.shortId) }
} }
private companion object {
private const val TAG = "SavedPostsRepository"
}
} }

View file

@ -34,6 +34,7 @@ kotlin {
api(compose.material3) api(compose.material3)
api(projects.database) api(projects.database)
api(projects.model) api(projects.model)
api(libs.napier)
implementation(libs.kotlin.coroutines.core) implementation(libs.kotlin.coroutines.core)
implementation(libs.compose.richtext.markdown) implementation(libs.compose.richtext.markdown)
implementation(libs.compose.richtext.material) implementation(libs.compose.richtext.material)

View file

@ -3,10 +3,10 @@ package dev.msfjarvis.claw.common.urllauncher
import android.content.ActivityNotFoundException import android.content.ActivityNotFoundException
import android.content.Context import android.content.Context
import android.net.Uri import android.net.Uri
import android.util.Log
import android.widget.Toast import android.widget.Toast
import androidx.browser.customtabs.CustomTabsIntent import androidx.browser.customtabs.CustomTabsIntent
import androidx.compose.ui.platform.UriHandler import androidx.compose.ui.platform.UriHandler
import io.github.aakira.napier.Napier
class UrlLauncher(private val context: Context) : UriHandler { class UrlLauncher(private val context: Context) : UriHandler {
override fun openUri(uri: String) { override fun openUri(uri: String) {
@ -20,7 +20,7 @@ class UrlLauncher(private val context: Context) : UriHandler {
customTabsIntent.launchUrl(context, Uri.parse(uri)) customTabsIntent.launchUrl(context, Uri.parse(uri))
} catch (e: ActivityNotFoundException) { } catch (e: ActivityNotFoundException) {
val error = "Failed to open URL: $uri" val error = "Failed to open URL: $uri"
Log.d("UrlLauncher", error) Napier.d(tag = "UrlLauncher") { error }
Toast.makeText(context, error, Toast.LENGTH_SHORT).show() Toast.makeText(context, error, Toast.LENGTH_SHORT).show()
} }
} }

View file

@ -1,6 +1,7 @@
package dev.msfjarvis.claw.common.urllauncher package dev.msfjarvis.claw.common.urllauncher
import androidx.compose.ui.platform.UriHandler import androidx.compose.ui.platform.UriHandler
import io.github.aakira.napier.Napier
import java.awt.Desktop import java.awt.Desktop
import java.io.IOException import java.io.IOException
import java.net.URI import java.net.URI
@ -13,7 +14,7 @@ class UrlLauncher : UriHandler {
try { try {
desktop.browse(URI(uri)) desktop.browse(URI(uri))
} catch (e: IOException) { } catch (e: IOException) {
println("Failed to open URL: $uri") Napier.d(tag = "UrlLauncher") { "Failed to open URL: $uri" }
} }
} }
} }

View file

@ -1,5 +1,6 @@
import com.jakewharton.retrofit2.converter.kotlinx.serialization.asConverterFactory import com.jakewharton.retrofit2.converter.kotlinx.serialization.asConverterFactory
import dev.msfjarvis.claw.api.LobstersApi import dev.msfjarvis.claw.api.LobstersApi
import io.github.aakira.napier.Napier
import kotlinx.serialization.ExperimentalSerializationApi import kotlinx.serialization.ExperimentalSerializationApi
import kotlinx.serialization.json.Json import kotlinx.serialization.json.Json
import okhttp3.MediaType import okhttp3.MediaType
@ -15,7 +16,7 @@ class Api {
return OkHttpClient.Builder() return OkHttpClient.Builder()
.addNetworkInterceptor { chain -> .addNetworkInterceptor { chain ->
val request = chain.request() val request = chain.request()
println("LobstersApi: ${request.method()}: ${request.url()}") Napier.d(tag = "LobstersApi") { "${request.method()}: ${request.url()}" }
chain.proceed(request) chain.proceed(request)
} }
.build() .build()

View file

@ -46,6 +46,7 @@ kotlin-coroutines-core = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-co
kotlinx-serialization-core = { module = "org.jetbrains.kotlinx:kotlinx-serialization-core", version.ref = "serialization" } kotlinx-serialization-core = { module = "org.jetbrains.kotlinx:kotlinx-serialization-core", version.ref = "serialization" }
kotlinx-serialization-json = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json", version.ref = "serialization" } kotlinx-serialization-json = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json", version.ref = "serialization" }
multiplatform-paging = "io.github.kuuuurt:multiplatform-paging:0.4.7" multiplatform-paging = "io.github.kuuuurt:multiplatform-paging:0.4.7"
napier = "io.github.aakira:napier:2.5.0"
r8 = "com.android.tools:r8:3.3.28" r8 = "com.android.tools:r8:3.3.28"
retrofit-kotlinxSerializationConverter = "com.jakewharton.retrofit:retrofit2-kotlinx-serialization-converter:0.8.0" retrofit-kotlinxSerializationConverter = "com.jakewharton.retrofit:retrofit2-kotlinx-serialization-converter:0.8.0"
retrofit-lib = "com.squareup.retrofit2:retrofit:2.9.0" retrofit-lib = "com.squareup.retrofit2:retrofit:2.9.0"