NDK & WIN32 另一组log函数

_log.h

[cpp]  view plain copy
  1. #ifdef __cplusplus  
  2. extern "C" {   
  3. #endif  
  4.   
  5. #ifndef LOG_TAG  
  6. #   define LOG_TAG    "\t\t" // 这个是自定义的LOG的标识  
  7. #endif  
  8.   
  9. #ifdef WIN32  
  10.   
  11. int log_d(const char * format, ...);  
  12. int log_i(const char * format, ...);  
  13. int log_w(const char * format, ...);  
  14. int log_e(const char * format, ...);  
  15. int log_v(const char * format, ...);  
  16.   
  17. #   define LOGD log_d  
  18. #   define LOGI log_i  
  19. #   define LOGW log_w  
  20. #   define LOGE log_e  
  21. #   define LOGV log_v  
  22.       
  23. #else // #ifdef WIN32  
  24.       
  25. #   include <jni.h>  
  26. #   include <android/log.h> // 这个是输出LOG所用到的函数所在的路径  
  27.       
  28. //Android.mk中要添加LOCAL_LDLIBS := -llog  
  29. //# 如果不包含这一句的话,会提示:__android_log_print 未定义  
  30. #   define LOGD(...)  __android_log_print(ANDROID_LOG_DEBUG,LOG_TAG,__VA_ARGS__) // 定义LOG类型  
  31. #   define LOGI(...)  __android_log_print(ANDROID_LOG_INFO,LOG_TAG,__VA_ARGS__) // 定义LOG类型  
  32. #   define LOGW(...)  __android_log_print(ANDROID_LOG_WARN,LOG_TAG,__VA_ARGS__) // 定义LOG类型  
  33. #   define LOGE(...)  __android_log_print(ANDROID_LOG_ERROR,LOG_TAG,__VA_ARGS__) // 定义LOG类型  
  34. #   define LOGV(...)  __android_log_print(ANDROID_LOG_FATAL,LOG_TAG,__VA_ARGS__) // 定义LOG类型  
  35.       
  36. #endif //#ifdef WIN32  
  37.   
  38. //测试程序  
  39. void testLog(void);  
  40.   
  41. #ifdef __cplusplus  
  42. };   
  43. #endif  

_log.c

[cpp]  view plain copy
  1. #include <stdio.h>  
  2. #include <stdlib.h>  
  3. #include <stdarg.h>  
  4. #include "_log.h"  
  5.   
  6. #define BUFFER_SIZE (1024 * 1)  
  7. static char db_buffer[BUFFER_SIZE];  
  8.   
  9. #ifdef WIN32  
  10.   
  11. #   define vsnprintf _vsnprintf  
  12.   
  13. #endif //#ifdef WIN32  
  14.   
  15. #define db_print(__tag, __p, __format) \  
  16. do { \  
  17.     int n = 0; \  
  18.     va_list args; \  
  19.     va_start(args, __format); \  
  20.     vsnprintf(db_buffer, BUFFER_SIZE - 1, __format, args); \  
  21.     db_buffer[BUFFER_SIZE - 1] = 0; \  
  22.     __p(__tag);\  
  23.     n = __p(db_buffer); \  
  24.     va_end(args); \  
  25.     return n; \  
  26. while (0)  
  27.   
  28. int log_d(const char * format, ...)  
  29. {  
  30.     db_print("debug: ", printf, format);  
  31. //  return 0;  
  32. }  
  33.   
  34. int log_i(const char * format, ...)  
  35. {  
  36.     db_print("info : ", printf, format);  
  37. }  
  38.   
  39. int log_w(const char * format, ...)  
  40. {  
  41.     db_print("warn : ", printf, format);  
  42. }  
  43.   
  44. int log_e(const char * format, ...)  
  45. {  
  46.     db_print("error: ", printf, format);  
  47. }  
  48.   
  49. int log_v(const char * format, ...)  
  50. {  
  51.     db_print("verbose: ", printf, format);  
  52. }  
  53.   
  54.   
  55. //////////////////////////////////////////////////////////////////////////  
  56. //测试程序  
  57. void testLog(void)  
  58. {  
  59.     LOGD("ddddddd = %d\n", __LINE__);  
  60.     LOGI("iiiiiii = %d\n", __LINE__);  
  61.     LOGW("wwwwwww = %d\n", __LINE__);  
  62.     LOGE("eeeeeee = %d\n", __LINE__);  
  63.     LOGV("vvvvvvv = %d\n", __LINE__);  
  64. }  


你可能感兴趣的:(android,测试,buffer)