在多线程上下文中可以安全使用Log.d()
和__android_log_print()
之类的Android日志记录功能吗?特别是,我想知道是否可以保证不会出现不稳定情况,并且各个日志消息不会在字符级别交错或混乱。
这似乎应该很容易找到信息,但是由于某些原因,我无法找到任何结论性的信息。 Log
和corresponding native functions的文档似乎无法解决该问题。在Logger
的文档中,提到了所有方法都是线程安全的,但是我想特别了解的是较低级的函数。
鉴于从多个线程进行日志记录很常见,因此人们希望这些函数是线程安全的。另外,至少在默认情况下,至少在Android Studio中,每条日志消息都包含一个线程标识符,对于记录器来说,它是线程感知的,但不是线程安全的,这似乎很奇怪。
我高度怀疑这里是否有任何需要担心的问题,但是当涉及到多线程时,即使似乎很显然所讨论的功能必须是线程安全的,似乎保证也是可取的。
此文件是否记录在某处,而我只是错过了?如果不是,那么假设所讨论的函数是线程安全的,是否合理?