Logger.h 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. #ifndef LOGGER_H
  2. #define LOGGER_H
  3. #include <iostream>
  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. std::cout << "\33[1;31m[ERROR] " << (text) << "\33[39;49m\n"; \
  12. }
  13. #else
  14. #define LOG_ERROR(text)
  15. #endif
  16. #if defined(LOG_LEVEL) && LOG_LEVEL >= 2
  17. #define LOG_WARNING(text) \
  18. if(Logger::level >= Logger::Level::L_WARNING) { \
  19. std::cout << "\33[1;33m[WARNING] " << (text) << "\33[39;49m\n"; \
  20. }
  21. #else
  22. #define LOG_WARNING(text)
  23. #endif
  24. #if defined(LOG_LEVEL) && LOG_LEVEL >= 3
  25. #define LOG_INFO(text) \
  26. if(Logger::level >= Logger::Level::L_INFO) { \
  27. std::cout << "\33[1;37m[INFO] " << (text) << "\33[39;49m\n"; \
  28. }
  29. #else
  30. #define LOG_INFO(text)
  31. #endif
  32. #if defined(LOG_LEVEL) && LOG_LEVEL >= 4
  33. #define LOG_DEBUG(text) \
  34. if(Logger::level >= Logger::Level::L_DEBUG) { \
  35. std::cout << "\33[1;32m[DEBUG] " << (text) << "\33[39;49m\n"; \
  36. }
  37. #else
  38. #define LOG_DEBUG(text)
  39. #endif
  40. #endif