android 日志系统中LOG_NDEBUG宏的作用

时间:2021-03-31 03:31:24

log.h文件:

/*
 * Normally we strip ALOGV (VERBOSE messages) from release builds.
 * You can modify this (for example with "#define LOG_NDEBUG 0"
 * at the top of your source file) to change that behavior.
 */
#ifndef LOG_NDEBUG
#ifdef NDEBUG
#define LOG_NDEBUG 1
#else
#define LOG_NDEBUG 0
#endif
#endif


/*
 * This is the local tag used for the following simplified
 * logging macros.  You can change this preprocessor definition
 * before using the other macros to change the tag.
 */
#ifndef LOG_TAG
#define LOG_TAG NULL
#endif


/*
 * Simplified macro to send a verbose log message using the current LOG_TAG.
 */
#ifndef ALOGV
#if LOG_NDEBUG
#define ALOGV(...)   ((void)0)
#else
#define ALOGV(...) ((void)ALOG(LOG_VERBOSE, LOG_TAG, __VA_ARGS__))
#endif
#endif


LOG_TAG  模块可以重新定义该宏

 LOG_NDEBUG宏  是LOGV信息的开关。如果一个模块想要打印LOGV信息可以通过以下两种方式之一实现:

#undef LOG_NDEBUG 

#define LOG_NDEBUG 0


android 日志级别

   1Log.v 的输出颜色为黑色的,输出大于或等于VERBOSE日志级别的信息

 2Log.d的输出颜色是蓝色的,输出大于或等于DEBUG日志级别的信息

 3Log.i的输出为绿色,输出大于或等于INFO日志级别的信息

 4Log.w的输出为橙色输出大于或等于WARN日志级别的信息

 5Log.e的输出为红色,仅输出ERROR日志级别的信息.