bc_logging.h 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. #ifndef BC_LOGGING_H_
  2. #define BC_LOGGING_H_
  3. #include <furi.h>
  4. #include "err.h" // appName
  5. //! WARNING: There is a bug in Furi such that if you crank LOG_LEVEL up to 6=TRACE
  6. //! AND you have menu->settings->system->logLevel = trace
  7. //! THEN this program will cause the FZ to crash when the plugin exits!
  8. #define LOG_LEVEL 4
  9. //----------------------------------------------------------------------------- ----------------------------------------
  10. // The FlipperZero Settings->System menu allows you to set the logging level at RUN-time
  11. // ... LOG_LEVEL lets you limit it at COMPILE-time
  12. //
  13. // FURI logging has 6 levels (numbered 1 thru 6}
  14. // 1. None
  15. // 2. Errors FURI_LOG_E
  16. // 3. Warnings FURI_LOG_W
  17. // 4. Information FURI_LOG_I
  18. // 5. Debug FURI_LOG_D
  19. // 6. Trace FURI_LOG_T
  20. //
  21. // --> furi/core/log.h
  22. //
  23. // The FlipperZero Settings->System menu allows you to set the logging level at RUN-time
  24. // This lets you limit it at COMPILE-time
  25. #ifndef LOG_LEVEL
  26. #define LOG_LEVEL 6 // default = full logging
  27. #endif
  28. #if(LOG_LEVEL < 2)
  29. #undef FURI_LOG_E
  30. #define FURI_LOG_E(tag, fmt, ...)
  31. #endif
  32. #if(LOG_LEVEL < 3)
  33. #undef FURI_LOG_W
  34. #define FURI_LOG_W(tag, fmt, ...)
  35. #endif
  36. #if(LOG_LEVEL < 4)
  37. #undef FURI_LOG_I
  38. #define FURI_LOG_I(tag, fmt, ...)
  39. #endif
  40. #if(LOG_LEVEL < 5)
  41. #undef FURI_LOG_D
  42. #define FURI_LOG_D(tag, fmt, ...)
  43. #endif
  44. #if(LOG_LEVEL < 6)
  45. #undef FURI_LOG_T
  46. #define FURI_LOG_T(tag, fmt, ...)
  47. #endif
  48. //----------------------------------------------------------
  49. // Logging helper macros
  50. //
  51. #define ERROR(fmt, ...) FURI_LOG_E(appName, fmt __VA_OPT__(, ) __VA_ARGS__)
  52. #define WARN(fmt, ...) FURI_LOG_W(appName, fmt __VA_OPT__(, ) __VA_ARGS__)
  53. #define INFO(fmt, ...) FURI_LOG_I(appName, fmt __VA_OPT__(, ) __VA_ARGS__)
  54. #define DEBUG(fmt, ...) FURI_LOG_D(appName, fmt __VA_OPT__(, ) __VA_ARGS__)
  55. #define TRACE(fmt, ...) FURI_LOG_T(appName, fmt __VA_OPT__(, ) __VA_ARGS__)
  56. #define ENTER TRACE("(+) %s", __func__)
  57. #define LEAVE TRACE("(-) %s", __func__)
  58. #endif //BC_LOGGING_H_