当前位置: 代码迷 >> Web前端 >> Webkit实战技术:怎么添加日志信息
  详细解决方案

Webkit实战技术:怎么添加日志信息

热度:458   发布时间:2012-07-31 12:33:47.0
Webkit实战技术:如何添加日志信息

调试日志信息

调试日志都是由宏来定义和实现的,并由另外定义的宏来作为开关。

日志开关

Webkit中只有JNI部分是有Log日志的,其他代码都没有加入日志。JNI部分常用的LOG有:
  • DBG_SET_LOG      在external/webkit/Source/WebKit/android/jni/PictureSet.h中定义,开关为PICTURE_SET_DEBUG
  • DBG_SET_LOGD在external/webkit/Source/WebKit/android/jni/PictureSet.h中定义开关为PICTURE_SET_DEBUG
  •  DBG_HANDLE_LOG 在external/webkit/Source/WebKit/android/nav/SelectText.cpp中定义,开关为VERBOSE_LOGGING
  • DBG_NAV_LOG在external/webkit/Source/WebKit/android/nav/CachedDebug.h中定义,开关为DEBUG_NAV_UI
  • DBG_NAV_LOGD在external/webkit/Source/WebKit/android/nav/CachedDebug.h中定义
  • DBG_NAV_LOGV在external/webkit/Source/WebKit/android/nav/CachedDebug.h中定义开关为DEBUG_NAV_UI_VERBOSE
  • DEBUG_PRINT_BOOL在external/webkit/Source/WebKit/android/nav/CachedNode.cpp和CachedRoot.cpp中定义,开关是DUMP_NAV_CACHE
  • DEBUG_PRINT_RECT在external/webkit/Source/WebKit/android/nav/CachedNode.cpp和CachedRoot.cpp中定义,开关是DUMP_NAV_CACHE
  • DEBUG_PRINT_COLOR在external/webkit/Source/WebKit/android/nav/CachedColor.cpp和CachedHistory.cpp中定义,开关是DUMP_NAV_CACHE

添加日志

对于Android的JNI代码或是C/C++层代码添加日志是通过system/core/include/cutils/log.h中定义的一些宏来实现的,log.h定义了这些宏,并有一些调试相关的开关。
LOGV,LOGD,LOGI,LOGW,LOGE
它们的级别是由上向下递增的,这些宏与Java代码android.util.Log中的Log.v,Log.d,Log.i,Log.w ,Log.e都是类似的。通常情况下只有LOGV是关闭的,其他的都是打开的。具体的定义和开关设置可以查看system/core/include/cutils/log.h文件。这些宏都使用了system/core/include/android/log.h中定义的一些方法如__android_log_print,__android_log_write等。
LOGE等这些宏跟print()函数一样可以使用变参,如LOGE(“rect is {%d,%d,%d,%d}”, a, b,c,d);但是查看LOGE宏的定义可以看到,还有一个参数就是宏LOG_TAG,cutils/log.h中定义的默认LOG_TAG是NULL,所以当你使用LOGE这些宏的时候要自己定义一个LOG_TAG。
总结,想要给C/C++ 文件添加日志,需要:
  1. #include <cutils/log.h>把log.h 文件包含进来
  2. #define LOG_TAG “your log tag”定义LOG_TAG,通常为文件名字,以方便定位到哪个文件
  3. 使用LOGE,LOGW或LOGD等添加打印输出。
  相关解决方案