如何在安卓系统中启用ALOGD?

7

在 CPP 代码中,例如在相机 HAL 中,ALOGD 消息没有被打印出来。 比如在 set_preview_window() 函数中: ALOGD("set_preview_window : X, rc %d", rc); 如何启用它们呢?


你想从 CPP 代码中获取日志吗? - Usman Kurd
4个回答

5

尝试在您需要捕获日志的文件中添加以下语句。

#define LOG_NDEBUG 0
#define LOG_NIDEBUG 0
#define LOG_NDDEBUG 0

编译后,您可以尝试通过adb logcat获取日志。

3
这些宏(ALOGX...)在一些系统核心的C/C++头文件中定义。 您可以在 system/core/include/log/log.h 中找到一个例子(AOSP 6.0.0r1)。
有时候,您需要在对应的Android.mk文件的LOCAL_SHARED_LIBRARIES中添加liblog
LOCAL_SHARED_LIBRARIES := ... liblog

此外,您可能需要在 C/C++ 相关的源文件顶部添加两行代码:

 #define LOG_NDEBUG 0
 #define LOG_TAG "LibName"

如果想要使用ALOGV()日志,请不要忘记设置LOG_NDEBUG 0。 在重新构建库/模块之后,您应该可以在logcat中看到日志。


2

查看 ALOGD 的定义,以获得提示。

在我的情况下,我必须执行以下操作:

setprop persist.testapp.debug.log 5

5是调试级别。


1

要将CPP日志传输到Android,您可以使用以下方法

   __android_log_print(ANDROID_LOG_ERROR, "TRACKERS", "%s", Str);

要使用这个,你需要导入以下库

#include <android/log.h>

如果您想获取简单的日志,可以使用以下方法。
LOG("Add description here");

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接