blob: cfa363b4fc38ad1cd477b3c12c9c636548e3f5db [file] [log] [blame]
/*
* Copyright (c) 2017 - 2020, Nordic Semiconductor ASA
*
* SPDX-License-Identifier: Apache-2.0
*/
#ifndef NRFX_LOG_H__
#define NRFX_LOG_H__
#include <zephyr/logging/log.h>
#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_<module>_CONFIG_LOG_ENABLED enables the messages (when set to 1)
* - NRFX_<module>_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__