標籤:android style blog io ar color os 使用 sp
#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使用