Simple example demonstrating various logger capabilities. Signed-off-by: Krzysztof Chruściński <krzysztof.chruscinski@nordicsemi.no>
44 lines
849 B
C
44 lines
849 B
C
/*
|
|
* Copyright (c) 2018 Nordic Semiconductor ASA
|
|
*
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*/
|
|
#ifndef EXT_LOG_SYSTEM_H
|
|
#define EXT_LOG_SYSTEM_H
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/** Log message priority levels */
|
|
enum ext_log_level {
|
|
EXT_LOG_CRITICAL,
|
|
EXT_LOG_ERROR,
|
|
EXT_LOG_WARNING,
|
|
EXT_LOG_NOTICE,
|
|
EXT_LOG_INFO,
|
|
EXT_LOG_DEBUG
|
|
};
|
|
|
|
/** Log message handler type. */
|
|
typedef void (*ext_log_handler)(enum ext_log_level level,
|
|
const char *format, ...);
|
|
|
|
/** @brief Set log handler function.
|
|
*
|
|
* @param handler External log handler.
|
|
*/
|
|
void ext_log_handler_set(ext_log_handler handler);
|
|
|
|
/** @brief Example function which is using custom log API. */
|
|
void ext_log_system_foo(void);
|
|
|
|
/** @brief Custom log API. */
|
|
#define ext_log(level, ...) log_handler(level, __VA_ARGS__)
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* EXT_LOG_SYSTEM_H */
|