如何在android C/C++ native编程(ndk)中使用logCat

限时加码!20+主流AI编程工具免费用 购周边加赠Coding Plan Lite,Claude Code、Cursor等即刻畅享,学习进阶更高效! 阅读详情

 http://bbs.theithome.com/simple/?t896.html.

 

最近在研究Android 2.3.3源代码的C/C++层,需要对代码进行一些调试,但是奇怪的是,直接添加LOGD("XXXXXXXX");,使用logcat却看不到任何输出,换成LOGI、LOGV、LOGW、LOGE也没有效果。于是在网上查找解决方法,经过几次试验,终于找到了,现在贴到下面备忘:
第一步:在对应的mk文件中加入:LOCAL_LDLIBS := -llog
第二步:在要使用LOG的cpp文件中加入:
#include <android/log.h>
#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG, "keymatch", __VA_ARGS__)

(注意VA_ARGS前后和android_log_print前面都是两个下划线字符,不是一个)
第三步:这样就可以使用了:LOGD("我要看到的调试信息^_^");

这样,在logcat端看到的输出是:
D/keymatch( 32):我要看到的调试信息^_^

如果想改变输出中的各项内容,可以参考相应颜色的标示,比如,如果想定义LOGE,就可以把上面的ANDROID_LOG_DEBUG改成ANDROID_LOG_ERROR,同理,LOGI神马的也都以此类推:

#define LOGV(...) __android_log_print(ANDROID_LOG_VERBOSE, "ProjectName", __VA_ARGS__)
#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG , "ProjectName", __VA_ARGS__)
#define LOGI(...) __android_log_print(ANDROID_LOG_INFO , "ProjectName", __VA_ARGS__)
#define LOGW(...) __android_log_print(ANDROID_LOG_WARN , "ProjectName", __VA_ARGS__)
#define LOGE(...) __android_log_print(ANDROID_LOG_ERROR , "ProjectName", __VA_ARGS__)

当然,如果不嫌麻烦,也可以直接使用__android_log_print函数,而不define定义LOGxxx

如果还想了解更详细的内容,也可以参考这篇文章: 《在android 输出log 信息 用于调试》

另外,有文章称此方法在编译动态库的时候可能会出问题,会提示cannot find -llog的错误。意思是找不到liblog.so这个库文件。
因此需要改成 LOCAL_LDLIBS:= -L$(SYSROOT)/usr/lib -llog 才可以正常编译。但是我这边编译动态库的时候,好像不用这样改也行,没发现编译时提示“cannot find -llog”的错误。如果您在实践过程中发现有这样的问题,可以参考该文章,链接在此:《如何在android native编程中使用logCat》

C语言C++通用自定义log打印函数 log打印函数,功能如下: 1 可控制宏DEBUG决定log,输出等级,默认为3,输出ULOGE,ULOGW,ULOGI 2 宏LOG_TAG输出log所在的模块,可将此宏放到makefile中或.h中或.cpp赋值, 3 输出log等级,所在模块信息,所在行数,所在函数,及可添加的任意参数及信息 立即下载

相关推荐

c++实现log文件写入

利用c++实现 log日志文件写入,编译环境vs2010。

C++实现分级LOG打印,不同级别LOG颜色不同

C++分级LOG实现

玫瑰花店的博客 1142

logd/logcat源码

logd/logcat源码

C++学习(四四七)cout没有输出

android studio在运行时,在run窗口有输出,在调试时没有输出

hankern的专栏 2419

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

文章来源:http://blog.csdn.net/Android_Tutor/article/details/5081713

$firecat利白的代码足迹$ 1906

打开Android C文件中的LOG

打开Android C文件中的LOG 可以一次打开LOGV,LOGI,LOGD,也可以分别打开: #undef NDEBUG //打开LOGV/LOGI/LOGD #define LOG_NDEBUG 0 //打开LOGV #define LOG_NIDEBUG 0 //打开LOGI #define LOG_NDDEBUG 0 //打开LOGD

syh63053767的专栏 1418

Android开发学习之Log的使用

Android开发学习之Log的使用     Log(android.util.log)是Android Studio中的日志工具类,熟练使用log会对你以后的Android开发之旅有很大的帮助。 * log类有五个方法,分别是(级别由低到高): 1.Log.v()打印一些最为繁琐、意义不大的日志信息 2.Log.d()打印一些调试信息(logd+tab) 3.Log.i()打印...

weixin_41897234的博客 3万+

Android C/C++ native编程NDK开发中logcat使用

NDK开发过程中,C/C++层,需要对代码进行一些调试,日志打印是我们解决异常或崩溃的重要手段,这里我就简单介绍下日志打印三步走。

hnjzfwy的博客 878

android C/C++ native编程(ndk)使用logcat

最近在研究Android 2.2 源代码的C/C++层,需要对代码进行一些调试,但是奇怪的是,直接添加LOGD("XXXXXXXX");,使用logcat却看不到任何输出,换成LOGI、LOGV、LOGW、LOGE也没有效果。于是在网上查找解决方法,经过几次试验,终于找到了,现在贴到下面备忘: 第一步:在对应的mk文件中加入:LOCAL_LDLIBS := -llog 第二步:在要使用LOG的

Tody Guo的专栏 5691

c++ log 打印android_在android C/C++ native编程(ndk)使用logCat

最近在研究Android 2.3.3源代码的C/C++层,需要对代码进行一些调试,但是奇怪的是,直接添加LOGD("XXXXXXXX");,使用logcat却看不到任何输出,换成LOGI、LOGV、LOGW、LOGE也没有效果。于是在网上查找解决方法,经过几次试验,终于找到了,现在贴到下面备忘:第一步:在对应的mk文件中加入:LOCAL_LDLIBS := -llog第二步:在要使用LOG的cp...

weixin_29197835的博客 411

android C/C++ native编程(ndk)使用logCat

Android 2.3.3源代码的C/C++层,需要对代码进行一些调试,但是奇怪的是,直接添加LOGD("XXXXXXXX");,使用logcat却看不到任何输出,换成LOGI、LOGV、LOGW、LOGE也没有效果。于是在网上查找解决方法,经过几次试验,终于找到了,现在贴到下面备忘: 第一步:在对应的mk文件中加入:LOCAL_LDLIBS := -llog 第二步:在要使用LOG的cpp

andy_android的专栏 1405

android C/C++ native编程(ndk)使用logCat学习记录

第一步:在对应的mk文件中加入:LOCAL_LDLIBS := -llog 第二步:在要使用LOG的cpp文件中加入: #include #define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG, "MY_TAG", __VA_ARGS__) 第三步:这样就可以使用了:LOGD("测试信息");

fhx123fhx123的专栏 537

一天掌握Android JNI本地编程 快速入门

一、JNI(Java Native Interface) 1、什么是JNI: JNI(Java Native Interface):java本地开发

linjcai的博客 317

如何在android native编程使用logCat

Android NDK发布后,java+C的编程方式成为android上性能编程的首选。但在C中调试困难,因此能使用logcat成为必须的要求。关于在Native代码中使用logcat,网上有很多说法,大部分有所欠缺,有的根本是错的。要使用logcat,首先在代码中要引入 log的头文件。#include 然后你可以简单的通过__android_lo

Rebcca的空间 704

超详细的Android NDK开发环境搭建

前言 技术的更新换代真的很快,以前做NDK开发用的是ndk-build,最近要用到ndk,查了一下资料,几年前已经改用CMake了,其实之前有学习过这个,但是时间一长,又给忘了,所以,好记性不如烂笔头,这次得做个笔记了。 NDK开发环境搭建 创建一个新项目,起名为“NdkDemo” 点击AndroidStudio右上角的SDK Manager图标,安装NDK和CMake,如下 打开项目结构(Ctrl + Shift + Alt + S),并设置NDK位置,如下: 创建jni目录:右击ap

Android菜鸟的专栏 1万+
上一篇: Oracle缓存表
下一篇: 一个游戏程序员的学习资料
mdifferent
博客等级 码龄18年 18粉丝 25原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值