mpp_log.h 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. /*
  2. * Copyright 2022 Rockchip Electronics Co. LTD
  3. *
  4. * Licensed under the Apache License, Version 2.0 (the "License");
  5. * you may not use this file except in compliance with the License.
  6. * You may obtain a copy of the License at
  7. *
  8. * http://www.apache.org/licenses/LICENSE-2.0
  9. *
  10. * Unless required by applicable law or agreed to in writing, software
  11. * distributed under the License is distributed on an "AS IS" BASIS,
  12. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13. * See the License for the specific language governing permissions and
  14. * limitations under the License.
  15. */
  16. #ifndef __MPP_LOG_H__
  17. #define __MPP_LOG_H__
  18. #include "rk_type.h"
  19. #include "mpp_log_def.h"
  20. /*
  21. * _c function will add condition check
  22. * _f function will add function name to the log
  23. * _cf function will add both function name and condition check
  24. */
  25. /*
  26. * mpp runtime log system usage:
  27. * mpp_logf is for fatal logging. For use when aborting
  28. * mpp_loge is for error logging. For use with unrecoverable failures.
  29. * mpp_logw is for warning logging. For use with recoverable failures.
  30. * mpp_logi is for informational logging.
  31. * mpp_logd is for debug logging.
  32. * mpp_logv is for verbose logging
  33. */
  34. #define mpp_logf(fmt, ...) _mpp_log_l(MPP_LOG_FATAL, MODULE_TAG, fmt, NULL, ## __VA_ARGS__)
  35. #define mpp_loge(fmt, ...) _mpp_log_l(MPP_LOG_ERROR, MODULE_TAG, fmt, NULL, ## __VA_ARGS__)
  36. #define mpp_logw(fmt, ...) _mpp_log_l(MPP_LOG_WARN, MODULE_TAG, fmt, NULL, ## __VA_ARGS__)
  37. #define mpp_logi(fmt, ...) _mpp_log_l(MPP_LOG_INFO, MODULE_TAG, fmt, NULL, ## __VA_ARGS__)
  38. #define mpp_logd(fmt, ...) _mpp_log_l(MPP_LOG_DEBUG, MODULE_TAG, fmt, NULL, ## __VA_ARGS__)
  39. #define mpp_logv(fmt, ...) _mpp_log_l(MPP_LOG_VERBOSE, MODULE_TAG, fmt, NULL, ## __VA_ARGS__)
  40. #define mpp_logf_f(fmt, ...) _mpp_log_l(MPP_LOG_FATAL, MODULE_TAG, fmt, __FUNCTION__, ## __VA_ARGS__)
  41. #define mpp_loge_f(fmt, ...) _mpp_log_l(MPP_LOG_ERROR, MODULE_TAG, fmt, __FUNCTION__, ## __VA_ARGS__)
  42. #define mpp_logw_f(fmt, ...) _mpp_log_l(MPP_LOG_WARN, MODULE_TAG, fmt, __FUNCTION__, ## __VA_ARGS__)
  43. #define mpp_logi_f(fmt, ...) _mpp_log_l(MPP_LOG_INFO, MODULE_TAG, fmt, __FUNCTION__, ## __VA_ARGS__)
  44. #define mpp_logd_f(fmt, ...) _mpp_log_l(MPP_LOG_DEBUG, MODULE_TAG, fmt, __FUNCTION__, ## __VA_ARGS__)
  45. #define mpp_logv_f(fmt, ...) _mpp_log_l(MPP_LOG_VERBOSE, MODULE_TAG, fmt, __FUNCTION__, ## __VA_ARGS__)
  46. #define mpp_logf_c(cond, fmt, ...) do { if (cond) mpp_logf(fmt, ## __VA_ARGS__); } while (0)
  47. #define mpp_loge_c(cond, fmt, ...) do { if (cond) mpp_loge(fmt, ## __VA_ARGS__); } while (0)
  48. #define mpp_logw_c(cond, fmt, ...) do { if (cond) mpp_logw(fmt, ## __VA_ARGS__); } while (0)
  49. #define mpp_logi_c(cond, fmt, ...) do { if (cond) mpp_logi(fmt, ## __VA_ARGS__); } while (0)
  50. #define mpp_logd_c(cond, fmt, ...) do { if (cond) mpp_logd(fmt, ## __VA_ARGS__); } while (0)
  51. #define mpp_logv_c(cond, fmt, ...) do { if (cond) mpp_logv(fmt, ## __VA_ARGS__); } while (0)
  52. #define mpp_logf_cf(cond, fmt, ...) do { if (cond) mpp_logf_f(fmt, ## __VA_ARGS__); } while (0)
  53. #define mpp_loge_cf(cond, fmt, ...) do { if (cond) mpp_loge_f(fmt, ## __VA_ARGS__); } while (0)
  54. #define mpp_logw_cf(cond, fmt, ...) do { if (cond) mpp_logw_f(fmt, ## __VA_ARGS__); } while (0)
  55. #define mpp_logi_cf(cond, fmt, ...) do { if (cond) mpp_logi_f(fmt, ## __VA_ARGS__); } while (0)
  56. #define mpp_logd_cf(cond, fmt, ...) do { if (cond) mpp_logd_f(fmt, ## __VA_ARGS__); } while (0)
  57. #define mpp_logv_cf(cond, fmt, ...) do { if (cond) mpp_logv_f(fmt, ## __VA_ARGS__); } while (0)
  58. /*
  59. * mpp runtime log system usage:
  60. * mpp_err is for error status message, it will print for sure.
  61. * mpp_log is for important message like open/close/reset/flush, it will print too.
  62. */
  63. #define mpp_log(fmt, ...) mpp_logi(fmt, ## __VA_ARGS__)
  64. #define mpp_err(fmt, ...) mpp_loge(fmt, ## __VA_ARGS__)
  65. #define mpp_log_f(fmt, ...) mpp_logi_f(fmt, ## __VA_ARGS__)
  66. #define mpp_err_f(fmt, ...) mpp_loge_f(fmt, ## __VA_ARGS__)
  67. #define mpp_log_c(cond, fmt, ...) do { if (cond) mpp_log(fmt, ## __VA_ARGS__); } while (0)
  68. #define mpp_log_cf(cond, fmt, ...) do { if (cond) mpp_log_f(fmt, ## __VA_ARGS__); } while (0)
  69. #ifdef __cplusplus
  70. extern "C" {
  71. #endif
  72. void _mpp_log_l(int level, const char *tag, const char *fmt, const char *func, ...);
  73. void mpp_set_log_level(int level);
  74. int mpp_get_log_level(void);
  75. /* deprecated function */
  76. void _mpp_log(const char *tag, const char *fmt, const char *func, ...);
  77. void _mpp_err(const char *tag, const char *fmt, const char *func, ...);
  78. #ifdef __cplusplus
  79. }
  80. #endif
  81. #endif /*__MPP_LOG_H__*/