前提
Android 系统把标准输出stdout重定向到/dev/null中,所以logcat无法查看printf()打印的log信息。
实际操作
-
头文件 #include “private/libc_logging.h”
-
需要的函数名:
__libc_format_log(ANDROID_LOG_DEBUG, tag, format, msg); -
实例:
# include<private/libc_logging.h> //也可以是 #include "private/logc_logging.h"
xxx_func() {
/**
* int __libc_format_log(int priority, const char* tag, const char* format, ...)
*
* priority : int, 是在private/libc_logging.h定义的log的level,与java层的类似。
* 参考"/bionic/libc/bionic/private/libc_logging.h" 定义的ANDROID_LOG_DEBUG。
* tag : char* , log的Tag信息。
* format : char* , 格式化的字符串,
*/
char * tag = "DroidMage";
char * format = "%s";
char * msg = "This is for test!";
__libc_format_log(ANDROID_LOG_DEBUG, tag, format, msg);
}
android底层有打印log的方法。(以android源码为根目录): /bionic/libc/private/libc_logging.cpp
看源码网站:http://androidxref.com