【发布时间】:2019-02-13 01:27:19
【问题描述】:
假设我有一个日志记录功能:
fun log(message: String)
不幸的是,这个函数会在协程和协程之外被调用。对于协程,我想记录来自协程上下文的附加信息(例如,协程的名称)。
我怎样才能做到这一点?
这些是我的想法,但我没有解决方案:
- 以某种方式找出
log内部是否在协程内部并获取coroutineContext。这可能吗? - 我可以有两个版本的
log,例如log和logSuspend。但是我如何确保正确的人被调用?如果我在suspend内,没有什么能阻止我意外致电log。此外,我可能有一个常规的辅助功能。它应该调用哪一个? - 可能是
ThreadLocal,例如我可以在某个时候将coroutineContext放在ThreadLocal中,但是如何确保它保持最新?
【问题讨论】:
标签: kotlin kotlinx.coroutines kotlin-coroutines