linux c语言输出日志,Android NDK :在 C语言代码中输出Log

在Android NDK开发中,不能直接使用printf()进行调试,而应该利用log.h头文件来打印日志。通过导入log.h,定义LOG宏,如LOGD, LOGI等,可以方便地在LogCat中查看调试信息。这种方式类似于Java中的Log.d(), Log.i()等方法,且支持变量输出,提供更高的灵活性。

Android NDK 开发时,想要在 .c 文件中打印一些调试信息的话,是不能使用 printf() 方法的,NDK 根本不支持,就算写了,在

LogCat 中也不会显示,正确的方式应该是 调用NDK 下的log.h 来打印Log 日志,具体方法如下:

1. 导入log头文件:在你使用的 .c/ .cpp 文件中,导入 log.h 头文件: #include

2. 定义LOG 函数:先定义一个全局变量,再定义一些输出的LOG函数:

#define LOG    "ffmpegDemo-jni" // 这个是自定义的LOG的标识

#define LOGD(...)  __android_log_print(ANDROID_LOG_DEBUG,LOG,__VA_ARGS__) // 定义LOGD类型

#define LOGI(...)  __android_log_print(ANDROID_LOG_INFO,LOG,__VA_ARGS__) // 定义LOGI类型

#define LOGW(...)  __android_log_print(ANDROID_LOG_WARN,LOG,__VA_ARGS__) // 定义LOGW类型

#define LOGE(...)  __android_log_print(ANDROID_LOG_ERROR,LOG,__VA_ARGS__) // 定义LOGE类型

#define LOGF(...)  __android_log_print(ANDROID_LOG_FATAL,LOG,__VA_ARGS__) // 定义LOGF类型

上述代码中定义的函数,分别对应于Android 的Java代码中的 Log.d(), Log.i(), Log.w(),Log.e(), Log.f()等方法;

3. 使用上述方法:在.c 代码中直接按照一下方式书写:

LOGD(LOG, "这是Debug的信息");

LOGE(LOG, "程序错误!!!");

除此之外,更可以给在打印时带上一些变量:

int width=10;

int height=20;

LOGI(LOG, "长和宽分别为 %d ,%d“,width,height);

这种方式更加灵活,非常类似于 C语言中的 printf()函数。

全文结束,希望能给大家一些帮助~0b1331709591d260c1c78e86d0c51c18.png

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值