/* * Copyright (c) 2017 - 2020, Nordic Semiconductor ASA * * SPDX-License-Identifier: Apache-2.0 */ #ifndef NRFX_LOG_H__ #define NRFX_LOG_H__ #include #ifdef __cplusplus extern "C" { #endif #define NRFX_MODULE_PREFIX _CONCAT(NRFX_, NRFX_LOG_MODULE) /* * The following macros from nrfx_config control the log messages coming from * a given module: * - NRFX__CONFIG_LOG_ENABLED enables the messages (when set to 1) * - NRFX__CONFIG_LOG_LEVEL specifies the severity level of the messages * that are to be output. */ #if !IS_ENABLED(_CONCAT(NRFX_MODULE_PREFIX, _CONFIG_LOG_ENABLED)) #define NRFX_MODULE_CONFIG_LOG_LEVEL 0 #else #define NRFX_MODULE_CONFIG_LOG_LEVEL \ _CONCAT(NRFX_MODULE_PREFIX, _CONFIG_LOG_LEVEL) #endif #if NRFX_MODULE_CONFIG_LOG_LEVEL == 0 #define NRFX_MODULE_LOG_LEVEL LOG_LEVEL_NONE #elif NRFX_MODULE_CONFIG_LOG_LEVEL == 1 #define NRFX_MODULE_LOG_LEVEL LOG_LEVEL_ERR #elif NRFX_MODULE_CONFIG_LOG_LEVEL == 2 #define NRFX_MODULE_LOG_LEVEL LOG_LEVEL_WRN #elif NRFX_MODULE_CONFIG_LOG_LEVEL == 3 #define NRFX_MODULE_LOG_LEVEL LOG_LEVEL_INF #elif NRFX_MODULE_CONFIG_LOG_LEVEL == 4 #define NRFX_MODULE_LOG_LEVEL LOG_LEVEL_DBG #endif LOG_MODULE_REGISTER(NRFX_MODULE_PREFIX, NRFX_MODULE_LOG_LEVEL); /** * @defgroup nrfx_log nrfx_log.h * @{ * @ingroup nrfx * * @brief This file contains macros that should be implemented according to * the needs of the host environment into which @em nrfx is integrated. */ /** * @brief Macro for logging a message with the severity level ERROR. * * @param ... printf-style format string, optionally followed by arguments * to be formatted and inserted in the resulting string. */ #define NRFX_LOG_ERROR(...) LOG_ERR(__VA_ARGS__) /** * @brief Macro for logging a message with the severity level WARNING. * * @param ... printf-style format string, optionally followed by arguments * to be formatted and inserted in the resulting string. */ #define NRFX_LOG_WARNING(...) LOG_WRN(__VA_ARGS__) /** * @brief Macro for logging a message with the severity level INFO. * * @param ... printf-style format string, optionally followed by arguments * to be formatted and inserted in the resulting string. */ #define NRFX_LOG_INFO(...) LOG_INF(__VA_ARGS__) /** * @brief Macro for logging a message with the severity level DEBUG. * * @param ... printf-style format string, optionally followed by arguments * to be formatted and inserted in the resulting string. */ #define NRFX_LOG_DEBUG(...) LOG_DBG(__VA_ARGS__) /** * @brief Macro for logging a memory dump with the severity level ERROR. * * @param[in] p_memory Pointer to the memory region to be dumped. * @param[in] length Length of the memory region in bytes. */ #define NRFX_LOG_HEXDUMP_ERROR(p_memory, length) \ LOG_HEXDUMP_ERR(p_memory, length, "") /** * @brief Macro for logging a memory dump with the severity level WARNING. * * @param[in] p_memory Pointer to the memory region to be dumped. * @param[in] length Length of the memory region in bytes. */ #define NRFX_LOG_HEXDUMP_WARNING(p_memory, length) \ LOG_HEXDUMP_WRN(p_memory, length, "") /** * @brief Macro for logging a memory dump with the severity level INFO. * * @param[in] p_memory Pointer to the memory region to be dumped. * @param[in] length Length of the memory region in bytes. */ #define NRFX_LOG_HEXDUMP_INFO(p_memory, length) \ LOG_HEXDUMP_INF(p_memory, length, "") /** * @brief Macro for logging a memory dump with the severity level DEBUG. * * @param[in] p_memory Pointer to the memory region to be dumped. * @param[in] length Length of the memory region in bytes. */ #define NRFX_LOG_HEXDUMP_DEBUG(p_memory, length) \ LOG_HEXDUMP_DBG(p_memory, length, "") /** * @brief Macro for getting the textual representation of a given error code. * * @param[in] error_code Error code. * * @return String containing the textual representation of the error code. */ #define NRFX_LOG_ERROR_STRING_GET(error_code) nrfx_error_string_get(error_code) extern char const *nrfx_error_string_get(nrfx_err_t code); /** @} */ #ifdef __cplusplus } #endif #endif // NRFX_LOG_H__