Android 日誌系統(Logcat)的實現分析
阿新 • • 發佈:2019-01-04
1、在Android工程的Android.mk檔案中新增如下內容:
LOCAL_SHARED_LIBRARIES := liblog libutils
LOCAL_LDLIBS := -L$(SYSROOT)/usr/lib -llog
2、在JNI的實現程式碼檔案(.c或者.cpp)中加入包含LOG標頭檔案的如下程式碼:
#include <android/log.h>
3、在需要列印的方法中新增列印程式碼,例如:
__android_log_print(ANDROID_LOG_INFO, "JniX431FileTest", "lsx_init");
// ANDROID_LOG_INFO:是日誌級別;
// "JniX431FileTest":是要過濾的標籤,可以在LogCat檢視中過濾。
// "lsx_init":是實際的日誌內容。
#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__)
4、LOGV(...)、LOGD(...)、LOGI(...)、LOGW(...)、LOGE(...)
LOCAL_SHARED_LIBRARIES := liblog libutils
LOCAL_LDLIBS := -L$(SYSROOT)/usr/lib -llog
2、在JNI的實現程式碼檔案(.c或者.cpp)中加入包含LOG標頭檔案的如下程式碼:
#include <android/log.h>
3、在需要列印的方法中新增列印程式碼,例如:
__android_log_print(ANDROID_LOG_INFO, "JniX431FileTest", "lsx_init");
// ANDROID_LOG_INFO:是日誌級別;
// "JniX431FileTest":是要過濾的標籤,可以在LogCat檢視中過濾。
// "lsx_init":是實際的日誌內容。
#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__)
4、LOGV(...)、LOGD(...)、LOGI(...)、LOGW(...)、LOGE(...)