android alogd,解决ALOGV无法输出的问题

Android4.1中,log有了一些打印,具体可以参考system/core/include/cutils/log.h

1. 下面是控制哪些log输出的宏

/*

* 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

#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

2. LOG_TAG定义

/*

* 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

最终写入是

/*

* Send a simple string to the log.

*/

int __android_log_buf_write(int bufID, int prio, const char *tag, const char *text);

int __android_log_buf_print(int bufID, int prio, const char *tag, const char *fmt, ...);

总结:

系统中的程序中输出log一般是到/dev/log/下的三个设备中,可以用logcat查看。

对于init运行的程序则有两种方法查看到log信息:

1.添加/system/bin/logwrapper,可以用logcat查看,例如

service /system/bin/logwrapper /system/bin/rild

2.添加console,像sh一样直接输出到console

service console /system/bin/sh

console

Android的编译参数中,加入了-DNDEBUG,也就是默认是no debug的,当然还需要LOG_NDEBUG LOG_NIDEBUG LOG_NDDEBUG这三个宏设置。

当-DNDEBUG被打上后,默认ALOGV会被禁止。

LOG_NDEBUG LOG_NIDEBUG LOG_NDDEBUG这三个宏控制

LOG_PRI(priority, tag, ...)

NDEBUG 是总开关,默认在编译参数中加入

打开ALOGV: #define LOG_NDEBUG 0

打开ALOGI:#define LOG_NIDEBUG 0

打开ALOGD:#define LOG_NDDEBUG 0

当然在调试阶段,小编还是喜欢这种方式

打开全部LOG:#undef NDEBUG

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值