logging.h 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. #ifndef BC_LOGGING_H_
  2. #define BC_LOGGING_H_
  3. #include <furi.h>
  4. #include "err.h" // appName
  5. //----------------------------------------------------------------------------- ----------------------------------------
  6. // FURI logging has 6 levels (numbered 1 thru 6}
  7. // 1. None
  8. // 2. Errors FURI_LOG_E
  9. // 3. Warnings FURI_LOG_W
  10. // 4. Information FURI_LOG_I
  11. // 5. Debug FURI_LOG_D
  12. // 6. Trace FURI_LOG_T
  13. //
  14. // --> furi/core/log.h
  15. //
  16. // The FlipperZero Settings->System menu allows you to set the logging level at RUN-time
  17. // This lets you limit it at COMPILE-time
  18. #ifndef LOG_LEVEL
  19. #define LOG_LEVEL 6 // default logging level
  20. #endif
  21. #if(LOG_LEVEL < 2)
  22. #undef FURI_LOG_E
  23. #define FURI_LOG_E(tag, fmt, ...)
  24. #endif
  25. #if(LOG_LEVEL < 3)
  26. #undef FURI_LOG_W
  27. #define FURI_LOG_W(tag, fmt, ...)
  28. #endif
  29. #if(LOG_LEVEL < 4)
  30. #undef FURI_LOG_I
  31. #define FURI_LOG_I(tag, fmt, ...)
  32. #endif
  33. #if(LOG_LEVEL < 5)
  34. #undef FURI_LOG_D
  35. #define FURI_LOG_D(tag, fmt, ...)
  36. #endif
  37. #if(LOG_LEVEL < 6)
  38. #undef FURI_LOG_T
  39. #define FURI_LOG_T(tag, fmt, ...)
  40. #endif
  41. //----------------------------------------------------------
  42. // Logging helper macros
  43. //
  44. #define ERROR(fmt, ...) FURI_LOG_E(appName, fmt __VA_OPT__(, ) __VA_ARGS__)
  45. #define WARN(fmt, ...) FURI_LOG_W(appName, fmt __VA_OPT__(, ) __VA_ARGS__)
  46. #define INFO(fmt, ...) FURI_LOG_I(appName, fmt __VA_OPT__(, ) __VA_ARGS__)
  47. #define DEBUG(fmt, ...) FURI_LOG_D(appName, fmt __VA_OPT__(, ) __VA_ARGS__)
  48. #define TRACE(fmt, ...) FURI_LOG_T(appName, fmt __VA_OPT__(, ) __VA_ARGS__)
  49. #define ENTER TRACE("(+) %s", __func__)
  50. #define LEAVE TRACE("(-) %s", __func__)
  51. #endif //BC_LOGGING_H_