Logger.h 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. #ifndef LOGGER_H
  2. #define LOGGER_H
  3. #include <stdio.h>
  4. namespace Logger {
  5. enum Level { L_NONE, L_ERROR, L_WARNING, L_INFO, L_DEBUG };
  6. extern Level level;
  7. }
  8. #if defined(LOG_LEVEL) && LOG_LEVEL >= 1
  9. #define LOG_ERROR(text) \
  10. if(Logger::level >= Logger::Level::L_ERROR) { \
  11. StringBuffer<512> s("\33[1;31m[ERROR] "); \
  12. s.append(text); \
  13. s.append("\33[39;49m"); \
  14. s.printLine(); \
  15. }
  16. #else
  17. #define LOG_ERROR(text)
  18. #endif
  19. #if defined(LOG_LEVEL) && LOG_LEVEL >= 2
  20. #define LOG_WARNING(text) \
  21. if(Logger::level >= Logger::Level::L_WARNING) { \
  22. StringBuffer<512> s("\33[1;33m[WARNING] "); \
  23. s.append(text); \
  24. s.append("\33[39;49m"); \
  25. s.printLine(); \
  26. }
  27. #else
  28. #define LOG_WARNING(text)
  29. #endif
  30. #if defined(LOG_LEVEL) && LOG_LEVEL >= 3
  31. #define LOG_INFO(text) \
  32. if(Logger::level >= Logger::Level::L_INFO) { \
  33. StringBuffer<512> s("\33[1;37m[INFO] "); \
  34. s.append(text); \
  35. s.append("\33[39;49m"); \
  36. s.printLine(); \
  37. }
  38. #else
  39. #define LOG_INFO(text)
  40. #endif
  41. #if defined(LOG_LEVEL) && LOG_LEVEL >= 4
  42. #define LOG_DEBUG(text) \
  43. if(Logger::level >= Logger::Level::L_DEBUG) { \
  44. StringBuffer<512> s("\33[1;32m[DEBUG] "); \
  45. s.append(text); \
  46. s.append("\33[39;49m"); \
  47. s.printLine(); \
  48. }
  49. #else
  50. #define LOG_DEBUG(text)
  51. #endif
  52. #endif