The nrf_log control interface.
More...
|
#define | NRF_LOG_INIT(timestamp_func) NRF_LOG_INTERNAL_INIT(timestamp_func) |
| Macro for initializing the logs. More...
|
|
#define | NRF_LOG_PROCESS() NRF_LOG_INTERNAL_PROCESS() |
| Macro for processing a single log entry from a queue of deferred logs. More...
|
|
#define | NRF_LOG_FLUSH() NRF_LOG_INTERNAL_FLUSH() |
| Macro for processing all log entries from the buffer. It blocks until all buffered entries are processed by the backend. More...
|
|
#define | NRF_LOG_FINAL_FLUSH() NRF_LOG_INTERNAL_FINAL_FLUSH() |
| Macro for flushing log data before reset. More...
|
|
#define | NRF_LOG_HANDLERS_SET(default_handler, bytes_handler) NRF_LOG_INTERNAL_HANDLERS_SET(default_handler, bytes_handler) |
| Macro for changing functions that are used to handle log entries. More...
|
|
|
typedef uint32_t(* | nrf_log_timestamp_func_t )(void) |
| Timestamp function prototype. More...
|
|
typedef bool(* | nrf_log_std_handler_t )(uint8_t severity_level, const uint32_t *const p_timestamp, const char *const p_str, uint32_t *p_args, uint32_t nargs) |
| Function prototype for handling a log entry. More...
|
|
typedef uint32_t(* | nrf_log_hexdump_handler_t )(uint8_t severity_level, const uint32_t *const p_timestamp, const char *const p_str, uint32_t offset, const uint8_t *const p_buf0, uint32_t buf0_length, const uint8_t *const p_buf1, uint32_t buf1_length) |
| Function prototype for handling a bytes-dumping log entry. More...
|
|
The nrf_log control interface.
#define NRF_LOG_FINAL_FLUSH |
( |
| ) |
NRF_LOG_INTERNAL_FINAL_FLUSH() |
Macro for flushing log data before reset.
- Note
- If logs are not deferred, this call has no use and is empty.
-
If RTT is used, then a breakpoint is hit once flushed.
#define NRF_LOG_FLUSH |
( |
| ) |
NRF_LOG_INTERNAL_FLUSH() |
Macro for processing all log entries from the buffer. It blocks until all buffered entries are processed by the backend.
- Note
- If logs are not deferred, this call has no use and is empty.
#define NRF_LOG_HANDLERS_SET |
( |
|
default_handler, |
|
|
|
bytes_handler |
|
) |
| NRF_LOG_INTERNAL_HANDLERS_SET(default_handler, bytes_handler) |
Macro for changing functions that are used to handle log entries.
- Parameters
-
default_handler | Function for handling log entries. |
bytes_handler | Function for handling hexdump entries. |
#define NRF_LOG_INIT |
( |
|
timestamp_func | ) |
NRF_LOG_INTERNAL_INIT(timestamp_func) |
Macro for initializing the logs.
- Note
- If timestamps are disabled in the configuration, then the provided pointer can be NULL. Otherwise, it is expected that timestamp_getter is not NULL.
- Parameters
-
timestamp_func | Function that returns the timestamp. |
- Returns
- NRF_SUCCESS after successful initialization, otherwise an error code.
#define NRF_LOG_PROCESS |
( |
| ) |
NRF_LOG_INTERNAL_PROCESS() |
Macro for processing a single log entry from a queue of deferred logs.
You can call this macro from the main context or from the error handler to process log entries one by one.
- Note
- If logs are not deferred, this call has no use and is defined as 'false'.
- Return values
-
true | There are more logs to process in the buffer. |
false | No more logs in the buffer. |
typedef uint32_t(* nrf_log_hexdump_handler_t)(uint8_t severity_level, const uint32_t *const p_timestamp, const char *const p_str, uint32_t offset, const uint8_t *const p_buf0, uint32_t buf0_length, const uint8_t *const p_buf1, uint32_t buf1_length) |
Function prototype for handling a bytes-dumping log entry.
The backend must implement such prototype. Two buffers are needed because data is stored internally in a circular buffer so it can be fragmented into up to two pieces.
- Parameters
-
severity_level | Severity level of the entry. |
p_timestamp | Pointer to a timestamp value. No timestamp if NULL. |
p_str | Prefix string for the bytes dump. |
offset | Indication of how many bytes have already been processed. |
p_buf0 | Pointer to the first part of data. |
buf0_length | Number of bytes in the first part. |
p_buf1 | Pointer to the second part of data. Optional. |
buf1_length | Number of bytes in the second part. |
- Returns
- Number of bytes processed. If all bytes are processed, it should be a sum of buf0_length and buf1_length
typedef bool(* nrf_log_std_handler_t)(uint8_t severity_level, const uint32_t *const p_timestamp, const char *const p_str, uint32_t *p_args, uint32_t nargs) |
Function prototype for handling a log entry.
The backend must implement such prototype.
- Parameters
-
severity_level | Severity level of the entry. |
p_timestamp | Pointer to the timestamp value. No timestamp if NULL. |
p_str | Pointer to a formatted string. |
p_args | Pointer to an array of arguments for a formatted string. |
nargs | Number of arguments in p_args. |
- Return values
-
true | If entry is successfully processed. |
false | If entry is not processed. |
typedef uint32_t(* nrf_log_timestamp_func_t)(void) |
Timestamp function prototype.
- Returns
- Timestamp value.
bool nrf_log_frontend_dequeue |
( |
void |
| ) |
|
Function for handling a single log entry.
Use this function only if the logs are buffered. It takes a single entry from the buffer and attempts to process it.
- Return values
-
true | If there are more entries to process. |
false | If there are no more entries to process. |
Function for initializing the logger frontend.
The frontend is initialized with functions for handling log entries. Those functions are provided by the backend.
- Note
- This function needs to be called directly only if the NRF_LOG_INIT macro is not used to initialize the logger.
- Parameters
-
std_handler | Function for handling standard log entries. |
hexdump_handler | Function for handling hexdump log entries. |
timestamp_func | Function for getting a timestamp. It cannot be NULL unless timestamping is disabled. |
Function for updating functions that handle log entries.
- Note
- Use this feature to change the log handling behavior in certain situations, like in a fault handler.
- Parameters
-
std_handler | Function for handling standard log entries. |
hexdump_handler | Function for handling hexdump log entries. |
Function for initializing the frontend and the default backend.
NRF_LOG_INIT calls this function to initialize the frontend and the backend. If custom backend is used, then NRF_LOG_INIT should not be called. Instead, frontend and user backend should be verbosely initialized.
- Parameters
-
timestamp_func | Function for getting a 32-bit timestamp. |
- Returns
- Error status.