Android NDK开发如何解决logcat日志打印不全
在Android开发过程中可能会遇到超长日志打印问题,如果日志过长如果一次性Log.d输出就会造成logcat终端只打印一部分,后面的全部打印不出来。具体原因没有查到,应该跟输出的缓存大小有关系。
在java层就遇到过,然后通过分段输出解决。最近开发NDK so发现__android_log_print也有这个问题。
在NDK开发时c++处理也和java一样,把日志分段处理,直接贴代码
#ifdef __ANDROID__
#define DEBUGPRINT(tag, msg) __android_log_print(ANDROID_LOG_DEBUG, tag, "%s", msg)
#else
#define DEBUGPRINT(tag, msg) fprintf(stdout, "%s/D %s\n", tag, msg);
#endif
inline void DLONGLOG(const char* tag, const char *msg) {
const size_t max_len = 60;
size_t len = strlen(msg);
if (len < max_len) {
DEBUGPRINT(tag, msg);
return;
}
DEBUGPRINT(tag, "==============start of long log===========