defs.h 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. #pragma once
  2. #include <stdio.h>
  3. #ifdef _WIN32
  4. #define filename(x) strrchr(x,'\\')?strrchr(x,'\\')+1:x
  5. #else
  6. #if __GNUC__ >= 4
  7. #define filename(x) strrchr(x,'/')?strrchr(x,'/')+1:x
  8. #endif
  9. #endif
  10. #define CREATE_LOG_HEAD \
  11. char acLogStr[1024*4] = {0};\
  12. int iHeadLength = sprintf_s(acLogStr, 1024*4, "[%s:%d] %s: ", filename(__FILE__), __LINE__, __FUNCTION__);\
  13. #define LOG_TRACE(...) \
  14. {\
  15. CREATE_LOG_HEAD\
  16. snprintf(acLogStr+iHeadLength, sizeof(acLogStr)-iHeadLength, __VA_ARGS__);\
  17. printf("[TRACE] %s", acLogStr);\
  18. }
  19. #define LOG_DEBUG(...) \
  20. {\
  21. CREATE_LOG_HEAD\
  22. sprintf_s(acLogStr+iHeadLength, sizeof(acLogStr)-iHeadLength, __VA_ARGS__);\
  23. printf("[DEBUG] %s", acLogStr);\
  24. }
  25. #define LOG_INFO(...) \
  26. {\
  27. CREATE_LOG_HEAD\
  28. snprintf(acLogStr+iHeadLength, sizeof(acLogStr)-iHeadLength, __VA_ARGS__);\
  29. printf("[INFO] %s", acLogStr);\
  30. }
  31. #define LOG_WARN(...) \
  32. {\
  33. CREATE_LOG_HEAD\
  34. snprintf(acLogStr+iHeadLength, sizeof(acLogStr)-iHeadLength, __VA_ARGS__);\
  35. printf("[WARN] %s", acLogStr);\
  36. }
  37. #define LOG_ERROR(...) \
  38. {\
  39. CREATE_LOG_HEAD\
  40. snprintf(acLogStr+iHeadLength, sizeof(acLogStr)-iHeadLength, __VA_ARGS__);\
  41. printf("[ERROR] %s", acLogStr);\
  42. }