Android Log Print Wrapper (c++)
Android Log Print Wrapper (c++)
안드로이드에서 로그를 찍고 싶을 때는 __android_log_print 함수를 사용 하면 되는데
이름이 길기도 길고 플랫폼에 따라 코드를 호환 되게 하던지 할 때 매크로로 사용 할 때 래퍼을 사용 하면 좋다.
#define LOG_Info(...) __android_log_print(ANDROID_LOG_INFO, LOG_NAME, __VA_ARGS__)
이렇게 해도 되고
#define LOGI(fmt, args...) __android_log_print(ANDROID_LOG_INFO, TAG, fmt, ##args)
위와 같이 해도 된다.
MyLog.h
#ifndef __LIB_FOR_LOG_H__
#define __LIB_FOR_LOG_H__
#define PRINT_LOG_FOR_LIB
#ifdef PRINT_LOG_FOR_LIB
#if defined(ANDROID) || defined(__ANDROID__)
#include <android/log.h>
#define LOG_NAME "My Log"
#define LOG_Verse(...) __android_log_print(ANDROID_LOG_VERBOSE, LOG_NAME, __VA_ARGS__)
#define LOG_Debug(...) __android_log_print(ANDROID_LOG_DEBUG, LOG_NAME, __VA_ARGS__)
#define LOG_Info(...) __android_log_print(ANDROID_LOG_INFO, LOG_NAME, __VA_ARGS__)
#define LOG_Warn(...) __android_log_print(ANDROID_LOG_WARN, LOG_NAME, __VA_ARGS__)
#define LOG_Error(...) __android_log_print(ANDROID_LOG_ERROR, LOG_NAME, __VA_ARGS__)
#else
#define LOG_Verse(...) printf( __VA_ARGS__)
#define LOG_Debug(...) printf( __VA_ARGS__)
#define LOG_Info(...) printf( __VA_ARGS__)
#define LOG_Warn(...) printf( __VA_ARGS__)
#define LOG_Error(...) printf( __VA_ARGS__)
#endif
#else
#define LOG_Verse(...)
#define LOG_Debug(...)
#define LOG_Info(...)
#define LOG_Warn(...)
#define LOG_Error(...)
#endif
#endif