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
时间: 2024-11-06 10:01:32

android log使用的相关文章

Log中&#39;main&#39;, &#39;system&#39;, &#39;radio&#39;, &#39;events&#39;以及android log分析

在Android中不同的log写到不同的设备中,共有/dev/log/system, /dev/log/main, /dev/log/radion, /dev/log/events四中类型.其中默认Log.v等写入/dev/log/main中.Slog写入/dev/log/system中. 我们在使用logcat 抓去日至的时候, 可以指定buffer,来请求不同的环形缓冲区 ('main', 'system', 'radio', 'events',默认为"-b main -b system&q

Android LOG机制流程图

以下只是Android LOG机制流程图,关于Android LOG机制的更多详细内容请参阅<Android LOG机制详解> 结束. Android LOG机制流程图,布布扣,bubuko.com

android Log图文详解(Log.v,Log.d,Log.i,Log.w,Log.e)

在Android群里,经常会有人问我,Android Log是怎么用的,今天我就把从网上以及SDK里东拼西凑过来,让大家先一睹为快,希望对大家入门Android Log有一定的帮助. android.util.Log常用的方法有以下5个:Log.v() Log.d() Log.i() Log.w() 以及 Log.e() .根据首字母对应VERBOSE,DEBUG,INFO, WARN,ERROR. 1.Log.v 的调试颜色为黑色的,任何消息都会输出,这里的v代表verbose啰嗦的意思,平时

Android Log

1.Android Log简介: 在程序中输出日志,使用 android.util.Log 类.该类提供了若干静态方法: Log.v(String tag, String msg); // 任何消息都会输出 Log.d(String tag, String msg); // 仅输出debug调试的意思,但他会输出上层的信息 Log.i(String tag, String msg); // 一般提示性的消息information Log.w(String tag, String msg);  

(Android系统)android log机制浅析

在android下面debug,最主要的方式就是用logcat抓log了,我们可能有尝试过使用printf来打印,当然结果是不行的,这里有时间就看了一下android平台下log的flow,在此做个笔记以作记录 我们一般使用ALOGD来打印log,所以这里就跟一下ALOGD的flow system/core/include/log/log.h system/core/include/log/log.h #ifndef ALOGD #define ALOGD(...) ((void)ALOG(LO

Android log系统 转

Android log系统 light 2011/11/20 Android 系统log抓取,实现原理分析   一 概述 本文档主要是供Android开发人员使用,特别是Framework开发.因为Framework中95%以上的问题都是靠分析log解决的,所以开发人员必须对android整个log系统十分清楚.什么问题抓什么log, 使用什么工具抓Log,如何分析log, 如何在代码中添加log. 二DDMS log 关于ddms是如何工作的和ddms的详细功能,见下面android sdk中

Android Log介绍

android.util.Log常用的方法有以下5个:Log.v() ,Log.d() ,Log.i() ,Log.w() ,Log.e() .按照日志级别从高到低为ERROR, WARN, INFO, DEBUG, VERBOSE.至于日志级别本身的含义,相信用过Apache Log4j,Apache LogFactory的人都明白,此处不再描述. 1.下面是对各种日志级别的输出介绍: 1.Log.v 的输出颜色为黑色的,输出大于或等于VERBOSE日志级别的信息 2.Log.d的输出颜色是蓝

android Log.isLoggable步骤的使用

android Log.isLoggable方法的使用 android 动态控制logcat日志开关,通过Log.isLoggable(TAG,level)方法动态控制,1.添加日志的时候加入判断,        String TAG="Volley";        boolean isDbug=Log.isLoggable(TAG, Log.VERBOSE);        if (isDbug) {            Log.w(TAG, "log"); 

android log 日志的输出总结

android log 在不同层使用不同方法. 1.如果是在Native 代码(hal 和 jni)中使用本地方法 头文件:  #include <utils/Log.h> 方法:          VERBOSE LOGV(): DEBUG     LOGD(); INFO         LOGI(); WARN        LOGW(); ERROR      LOGE(); 例子:   LOGD("%s, %d",  s, n) ; 2.如果是在framework

在非NDK编译条件下使用Android Log函数

解决的需求 有些时候不能在NDK环境编译,或者使用NDK编译会颇费周折,然后又想使用Android系统自带的Log类方法,那么我们就可以使用dlopen来实现我们的目的.比如在OpenCV中添加Android的Log打印. 关于dlopen dlopen和dlclose对处理的lib进行引用计数,dlopen使引用计数加1,dlclose让引用计数减1,当对库的引用计数达到0的时候,才会把库unmap掉. dlsym返回查找到的第一个符合要求的函数地址,该地址指的是库加载进进程虚拟地址. 可以使