首页 > 代码库 > android log使用
android log使用
#define LOG_NDEBUG 0#define LOG_NDDEBUG 0#define LOG_NIDEBUG 0#define LOG_NVDEBUG 0#define LOG_NWDEBUG 0#define VERY_VERBOSE_LOGGING
可以一次打开LOGV,LOGI,LOGD,也可以分别打开:
#undef NDEBUG //打开LOGV/LOGI/LOGD#define LOG_NDEBUG 0 //打开LOGV#define LOG_NIDEBUG 0 //打开LOGI#define LOG_NDDEBUG 0 //打开LOGD
举例
举例,如果要看AndroidRuntime的LOGI和LOGD,可以有这样2种写法:
方法一
NDEBUG-LOG_NDEBUG=LOG_NIDEBUG +LOG_NIDEBUG
#define LOG_TAG "AndroidRuntime"#undef NDEBUG#define LOG_NDEBUG 1#include <utils/Log.h>
方法二
LOG_NIDEBUG +LOG_NIDEBUG
#define LOG_TAG "AndroidRuntime"#define LOG_NIDEBUG 0#define LOG_NDDEBUG 0#include <utils/Log.h>
在Log.h(system/core/include/cutils)中,log相关宏定义如下:
#ifndef LOG_NDEBUG#ifdef NDEBUG#define LOG_NDEBUG 1#else#define LOG_NDEBUG 0#endif#endif#ifndef LOG_NIDEBUG#ifdef NDEBUG#define LOG_NIDEBUG 1#else#define LOG_NIDEBUG 0#endif#endif#ifndef LOG_NDDEBUG#ifdef NDEBUG#define LOG_NDDEBUG 1#else#define LOG_NDDEBUG 0#endif#endif#ifndef LOG_TAG#define LOG_TAG NULL#endif#ifndef LOG_PRI#define LOG_PRI(priority, tag, ...) / ({ / if (((priority == ANDROID_LOG_VERBOSE) && (LOG_NDEBUG == 0)) || / ((priority == ANDROID_LOG_DEBUG) && (LOG_NDDEBUG == 0)) || / ((priority == ANDROID_LOG_INFO) && (LOG_NIDEBUG == 0)) || / (priority == ANDROID_LOG_WARN) || / (priority == ANDROID_LOG_ERROR) || / (priority == ANDROID_LOG_FATAL)) / (void)android_printLog(priority, tag, __VA_ARGS__); / })#endif
所以,需要打印log时,第一要注意LOG_TAG要定义,第二,要注意LOGV(...)、 LOGD(...)、LOGI(...) 、LOGW(...) 、LOGE(...)对应的 LOG_NDEBUG 、LOG_NDDEBUG 、LOG_NIDEBUG 要定义为0。
例子如下:
要使用LOGI()必须定义如下内容
#define LOG_TAG "sysproc"#define LOG_NIDEBUG 0
android log使用
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。