整理记录控制Android系统日志输出的关键点。

ALOGV等日志

  • 相关定义
// system/core/include/cutils/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
  • 示例

    • 打开Camera.cpp部分的日志;
    • 在”‘#include ”‘之前插入 c #undef NDEBUG #define LOG_NDEBUG 0
    • LOG的打开范围以编译模块划分;
    • LOG_TAG没有定义则为NULL;
  • 其他

    • 打开ALOGV:#define LOG_NDEBUG 0
    • 打开ALOGI:#define LOG_NIDEBUG 0
    • 打开ALOGD:#define LOG_NDDEBUG 0
    • 打开所有:#undef NDEBUG

Kernel内核日志

在追溯红外按键问题和休眠问题的时候摸索了一阵Kernel的一些流程,记录备用。

  • 使用
    • printk(KERN_INFO “Hello World!/n”)
  • 日志查看
    • cat /proc/kmsg

参考