logging: add mechanism for handling transient strings
Extending logger to support logging transient strings (with %s). With dedicated call (log_strdup), string is duplicated to a buffer from internal logger pool. Logger implicitly manages the pool. Signed-off-by: Krzysztof Chruscinski <krzysztof.chruscinski@nordicsemi.no>
This commit is contained in:
parent
6cb20ab4c1
commit
a15438e8f5
9 changed files with 184 additions and 11 deletions
|
@ -255,6 +255,19 @@ extern "C" {
|
|||
*/
|
||||
int log_printk(const char *fmt, va_list ap);
|
||||
|
||||
/** @brief Copy transient string to a buffer from internal, logger pool.
|
||||
*
|
||||
* Function should be used when transient string is intended to be logged.
|
||||
* Logger allocates a buffer and copies input string returning a pointer to the
|
||||
* copy. Logger ensures that buffer is freed when logger message is freed.
|
||||
*
|
||||
* @param str Transient string.
|
||||
*
|
||||
* @return Copy of the string or default string if buffer could not be
|
||||
* allocated. String may be truncated if input string does not fit in
|
||||
* a buffer from the pool (see CONFIG_LOG_STRDUP_MAX_STRING).
|
||||
*/
|
||||
char *log_strdup(char *str);
|
||||
|
||||
#define __DYNAMIC_MODULE_REGISTER(_name)\
|
||||
struct log_source_dynamic_data LOG_ITEM_DYNAMIC_DATA(_name) \
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue