【发布时间】:2020-05-08 12:14:36
【问题描述】:
我创建了一个自定义记录器来将我的所有日志写入文件以及 android 日志。由于文件写入是一个阻塞操作,我现在想让文件写入与 Kotlin 协程异步。仅将写入包装在协程中是行不通的,因为随后某些日志会被切换并且不会以正确的顺序写入文件。如何确保日志是按顺序写入的,同时不会因文件操作阻塞主线程,最好使用 Kotlin 协程?
【问题讨论】:
-
您可以使用channels 作为日志队列
-
您能详细说明一下吗?我今天早些时候也找到了它们,但我不太明白在这种情况下我应该如何使用它们。我是否有一个无限的协程读取通道并在读取后写入文件,以及 log 方法启动一个写入该通道的协程?我的印象是协程不应该是无限的。
标签: android asynchronous kotlin logging kotlin-coroutines