diff --git a/app/src/main/java/io/legado/app/utils/AsyncHandler.kt b/app/src/main/java/io/legado/app/utils/AsyncHandler.kt new file mode 100644 index 000000000..d272575c6 --- /dev/null +++ b/app/src/main/java/io/legado/app/utils/AsyncHandler.kt @@ -0,0 +1,25 @@ +package io.legado.app.utils + +import io.legado.app.help.globalExecutor +import java.util.logging.Handler +import java.util.logging.LogRecord + +class AsyncHandler(private val delegate: Handler) : Handler() { + + override fun publish(record: LogRecord?) { + globalExecutor.execute { + delegate.publish(record) + } + } + + override fun flush() { + delegate.flush() + } + + override fun close() { + delegate.close() + } + +} + +fun Handler.asynchronous() = AsyncHandler(this) diff --git a/app/src/main/java/io/legado/app/utils/LogUtils.kt b/app/src/main/java/io/legado/app/utils/LogUtils.kt index a70cbb858..3d290c0cd 100644 --- a/app/src/main/java/io/legado/app/utils/LogUtils.kt +++ b/app/src/main/java/io/legado/app/utils/LogUtils.kt @@ -69,7 +69,7 @@ object LogUtils { } else { Level.OFF } - } + }.asynchronous() } private val consoleHandler by lazy { @@ -85,7 +85,7 @@ object LogUtils { } else { Level.OFF } - } + }.asynchronous() } fun upLevel() {