C 输出log到LogCat
[TOC]
1. 新建c文件
2. 添加头文件
#include <android/log.h>
#include <stdio.h>
#include <stdlib.h>
#include <jni.h>
#include <android/log.h>
3. 添加日志输出标志
格式:#define LOG "
LogCat中输出日志的标志
"
#define LOG "c_log"
4. 给log.h对应的日志输出方法添加别名
格式:
#define LOGI(...) __android_log_print(日志等级,日志标志,__VA_ARGS__)
日志等级
- ANDROID_LOG_VERBOSE
- ANDROID_LOG_DEBUG
- ANDROID_LOG_INFO
- ANDROID_LOG_WARN
- ANDROID_LOG_ERROR (日志颜色:红色)
- ANDROID_LOG_FATAL (日志颜色:红色)
#define LOG "c_log"
#define LOGV(...) __android_log_print(ANDROID_LOG_VERBOSE,LOG,__VA_ARGS__)
#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG,LOG,__VA_ARGS__)
#define LOGI(...) __android_log_print(ANDROID_LOG_INFO,LOG,__VA_ARGS__)
#define LOGW(...) __android_log_print(ANDROID_LOG_WARN,LOG,__VA_ARGS__)
#define LOGE(...) __android_log_print(ANDROID_LOG_ERROR,LOG,__VA_ARGS__)
#define LOGF(...) __android_log_print(ANDROID_LOG_FATAL,LOG,__VA_ARGS__)
5. 调用对应的方法进行日志输出
LOGV("c输出测试: 等级v");
LOGD("c输出测试: 等级d");
LOGI("c输出测试: 等级i");
LOGW("c输出测试: 等级w");
LOGE("c输出测试: 等级e");
LOGF("c输出测试: 等级f");
6. LogCat显示结果
04-28 15:38:37.328 17454-17454/com.myc D/c_log: c输出测试: 等级d
04-28 15:38:37.328 17454-17454/com.myc I/c_log: c输出测试: 等级i
04-28 15:38:37.328 17454-17454/com.myc W/c_log: c输出测试: 等级w
04-28 15:38:37.328 17454-17454/com.myc E/c_log: c输出测试: 等级e
04-28 15:38:37.328 17454-17454/com.myc A/c_log: c输出测试: 等级f
7. 完整的c文件
#include <stdio.h>
#include <stdlib.h>
#include <jni.h>
#include <android/log.h>
#define LOG "c_log"
#define LOGV(...) __android_log_print(ANDROID_LOG_VERBOSE,LOG,__VA_ARGS__)
#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG,LOG,__VA_ARGS__)
#define LOGI(...) __android_log_print(ANDROID_LOG_INFO,LOG,__VA_ARGS__)
#define LOGW(...) __android_log_print(ANDROID_LOG_WARN,LOG,__VA_ARGS__)
#define LOGE(...) __android_log_print(ANDROID_LOG_ERROR,LOG,__VA_ARGS__)
#define LOGF(...) __android_log_print(ANDROID_LOG_FATAL,LOG,__VA_ARGS__)
JNIEXPORT void JNICALL
Java_com_myc_jni_Jni_cLog(JNIEnv *env, jobject instance) {
LOGV("c输出测试: 等级v");
LOGD("c输出测试: 等级d");
LOGI("c输出测试: 等级i");
LOGW("c输出测试: 等级w");
LOGE("c输出测试: 等级e");
LOGF("c输出测试: 等级f");
}