mirror of
https://github.com/null2264/yokai.git
synced 2025-06-21 10:44:42 +00:00
fix: Log file is not being created
This commit is contained in:
parent
b1766ebb94
commit
53ea5bafee
3 changed files with 43 additions and 36 deletions
|
@ -23,8 +23,6 @@ import androidx.lifecycle.ProcessLifecycleOwner
|
|||
import androidx.lifecycle.lifecycleScope
|
||||
import androidx.multidex.MultiDex
|
||||
import co.touchlab.kermit.Logger
|
||||
import co.touchlab.kermit.io.RollingFileLogWriter
|
||||
import co.touchlab.kermit.io.RollingFileLogWriterConfig
|
||||
import coil3.ImageLoader
|
||||
import coil3.PlatformContext
|
||||
import coil3.SingletonImageLoader
|
||||
|
@ -59,13 +57,9 @@ import eu.kanade.tachiyomi.util.system.launchIO
|
|||
import eu.kanade.tachiyomi.util.system.localeContext
|
||||
import eu.kanade.tachiyomi.util.system.notification
|
||||
import eu.kanade.tachiyomi.util.system.setToDefault
|
||||
import eu.kanade.tachiyomi.util.system.setupFileLog
|
||||
import java.security.Security
|
||||
import java.text.SimpleDateFormat
|
||||
import java.util.Date
|
||||
import java.util.Locale
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.flow.combine
|
||||
import kotlinx.coroutines.flow.distinctUntilChanged
|
||||
import kotlinx.coroutines.flow.launchIn
|
||||
import kotlinx.coroutines.flow.onEach
|
||||
import kotlinx.io.files.Path
|
||||
|
@ -96,18 +90,10 @@ open class App : Application(), DefaultLifecycleObserver, SingletonImageLoader.F
|
|||
|
||||
private fun buildWritersToAdd(
|
||||
logPath: Path?,
|
||||
logFileName: String?,
|
||||
) = buildList {
|
||||
if (!BuildConfig.DEBUG) Logger.addLogWriter(CrashlyticsLogWriter())
|
||||
if (!BuildConfig.DEBUG) add(CrashlyticsLogWriter())
|
||||
|
||||
if (logPath != null && logFileName != null) add(
|
||||
RollingFileLogWriter(
|
||||
config = RollingFileLogWriterConfig(
|
||||
logFileName,
|
||||
logFilePath = logPath,
|
||||
)
|
||||
)
|
||||
)
|
||||
if (logPath != null) add(Logger.setupFileLog(logPath, BuildConfig.BUILD_TYPE))
|
||||
}
|
||||
|
||||
@SuppressLint("LaunchActivityFromNotification")
|
||||
|
@ -133,24 +119,8 @@ open class App : Application(), DefaultLifecycleObserver, SingletonImageLoader.F
|
|||
|
||||
val scope = ProcessLifecycleOwner.get().lifecycleScope
|
||||
|
||||
combine(
|
||||
storageManager.changes,
|
||||
// Just in case we have more things to add in the future...
|
||||
) { _ ->
|
||||
listOf(storageManager.getLogsDirectory())
|
||||
}
|
||||
.distinctUntilChanged()
|
||||
.onEach {
|
||||
val logPath = it[0]?.filePath?.let { path -> Path(path) }
|
||||
val date = SimpleDateFormat("yyyy-MM-dd", Locale.getDefault()).format(Date())
|
||||
Logger.setToDefault(
|
||||
buildWritersToAdd(
|
||||
logPath = logPath,
|
||||
logFileName = "$date-${BuildConfig.BUILD_TYPE}.log"
|
||||
)
|
||||
)
|
||||
}
|
||||
.launchIn(scope)
|
||||
val logPath = storageManager.getLogsDirectory()?.filePath?.let { path -> Path(path) }
|
||||
Logger.setToDefault(buildLogWritersToAdd(logPath))
|
||||
|
||||
basePreferences.crashReport().changes()
|
||||
.onEach {
|
||||
|
@ -320,4 +290,12 @@ open class App : Application(), DefaultLifecycleObserver, SingletonImageLoader.F
|
|||
}
|
||||
}
|
||||
|
||||
fun buildLogWritersToAdd(
|
||||
logPath: Path?,
|
||||
) = buildList {
|
||||
if (!BuildConfig.DEBUG) add(CrashlyticsLogWriter())
|
||||
|
||||
if (logPath != null) add(Logger.setupFileLog(logPath, BuildConfig.BUILD_TYPE))
|
||||
}
|
||||
|
||||
private const val ACTION_DISABLE_INCOGNITO_MODE = "tachi.action.DISABLE_INCOGNITO_MODE"
|
||||
|
|
|
@ -2,8 +2,11 @@ package yokai.domain.storage
|
|||
|
||||
import android.content.Context
|
||||
import androidx.core.net.toUri
|
||||
import co.touchlab.kermit.Logger
|
||||
import com.hippo.unifile.UniFile
|
||||
import eu.kanade.tachiyomi.buildLogWritersToAdd
|
||||
import eu.kanade.tachiyomi.util.storage.DiskUtil
|
||||
import eu.kanade.tachiyomi.util.system.setToDefault
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.channels.Channel
|
||||
|
@ -14,6 +17,7 @@ import kotlinx.coroutines.flow.launchIn
|
|||
import kotlinx.coroutines.flow.onEach
|
||||
import kotlinx.coroutines.flow.receiveAsFlow
|
||||
import kotlinx.coroutines.flow.shareIn
|
||||
import kotlinx.io.files.Path
|
||||
|
||||
class StorageManager(
|
||||
private val context: Context,
|
||||
|
@ -42,7 +46,15 @@ class StorageManager(
|
|||
}
|
||||
parent.createDirectory(COVERS_PATH)
|
||||
parent.createDirectory(PAGES_PATH)
|
||||
parent.createDirectory(LOGS_PATH)
|
||||
parent.createDirectory(LOGS_PATH)?.also {
|
||||
try {
|
||||
Logger.setToDefault(buildLogWritersToAdd(it.filePath?.let { path -> Path(path) }))
|
||||
} catch (e: Exception) {
|
||||
// Just in case something went horribly wrong
|
||||
Logger.setToDefault(buildLogWritersToAdd(null))
|
||||
Logger.e(e) { "Something went wrong while trying to setup log file" }
|
||||
}
|
||||
}
|
||||
}
|
||||
_changes.send(Unit)
|
||||
}
|
||||
|
|
|
@ -2,13 +2,30 @@ package eu.kanade.tachiyomi.util.system
|
|||
|
||||
import co.touchlab.kermit.LogWriter
|
||||
import co.touchlab.kermit.Logger
|
||||
import co.touchlab.kermit.io.RollingFileLogWriter
|
||||
import co.touchlab.kermit.io.RollingFileLogWriterConfig
|
||||
import co.touchlab.kermit.platformLogWriter
|
||||
import kotlinx.datetime.Clock
|
||||
import kotlinx.datetime.TimeZone
|
||||
import kotlinx.datetime.todayIn
|
||||
import kotlinx.io.files.Path
|
||||
|
||||
fun Logger.w(e: Throwable) = w(e) { "Something is not right..." }
|
||||
fun Logger.e(e: Throwable) = e(e) { "Something went wrong!" }
|
||||
|
||||
fun Logger.setToDefault(
|
||||
writersToAdd: List<LogWriter>,
|
||||
) {
|
||||
Logger.setLogWriters(listOf(platformLogWriter()) + writersToAdd)
|
||||
Logger.setTag("Yokai")
|
||||
}
|
||||
|
||||
fun Logger.setupFileLog(logPath: Path, buildType: String? = null): LogWriter {
|
||||
val date = Clock.System.todayIn(TimeZone.currentSystemDefault())
|
||||
return RollingFileLogWriter(
|
||||
config = RollingFileLogWriterConfig(
|
||||
logFileName = date.toString() + if (buildType != null) "-$buildType-" else "" + ".log",
|
||||
logFilePath = logPath,
|
||||
)
|
||||
)
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue