29 #include "../kaa_error.h"
30 #include "../platform/defaults.h"
38 #define KAA_LOG_LEVEL_NONE 0
40 #define KAA_LOG_LEVEL_FATAL 1
42 #define KAA_LOG_LEVEL_ERROR 2
44 #define KAA_LOG_LEVEL_WARN 3
46 #define KAA_LOG_LEVEL_INFO 4
48 #define KAA_LOG_LEVEL_DEBUG 5
50 #define KAA_LOG_LEVEL_TRACE 6
52 #ifndef KAA_MAX_LOG_LEVEL
54 #define KAA_MAX_LOG_LEVEL KAA_LOG_LEVEL_TRACE
57 #define KAA_LOG_LEVEL_FATAL_ENABLED (KAA_MAX_LOG_LEVEL >= KAA_LOG_LEVEL_FATAL)
58 #define KAA_LOG_LEVEL_ERROR_ENABLED (KAA_MAX_LOG_LEVEL >= KAA_LOG_LEVEL_ERROR)
59 #define KAA_LOG_LEVEL_WARN_ENABLED (KAA_MAX_LOG_LEVEL >= KAA_LOG_LEVEL_WARN)
60 #define KAA_LOG_LEVEL_INFO_ENABLED (KAA_MAX_LOG_LEVEL >= KAA_LOG_LEVEL_INFO)
61 #define KAA_LOG_LEVEL_DEBUG_ENABLED (KAA_MAX_LOG_LEVEL >= KAA_LOG_LEVEL_DEBUG)
62 #define KAA_LOG_LEVEL_TRACE_ENABLED (KAA_MAX_LOG_LEVEL >= KAA_LOG_LEVEL_TRACE)
144 ,
kaa_error_t error_code,
const char* format, ...);
149 #if KAA_LOG_LEVEL_FATAL_ENABLED
150 #define KAA_LOG_FATAL(logger, err, ...) kaa_log_write(logger, __FILE__, __LINE__, KAA_LOG_LEVEL_FATAL, err, __VA_ARGS__)
152 #define KAA_LOG_FATAL(...)
155 #if KAA_LOG_LEVEL_ERROR_ENABLED
156 #define KAA_LOG_ERROR(logger, err, ...) kaa_log_write(logger, __FILE__, __LINE__, KAA_LOG_LEVEL_ERROR, err, __VA_ARGS__)
158 #define KAA_LOG_ERROR(...)
161 #if KAA_LOG_LEVEL_WARN_ENABLED
162 #define KAA_LOG_WARN(logger, err, ...) kaa_log_write(logger, __FILE__, __LINE__, KAA_LOG_LEVEL_WARN, err, __VA_ARGS__)
164 #define KAA_LOG_WARN(...)
167 #if KAA_LOG_LEVEL_INFO_ENABLED
168 #define KAA_LOG_INFO(logger, err, ...) kaa_log_write(logger, __FILE__, __LINE__, KAA_LOG_LEVEL_INFO, err, __VA_ARGS__)
170 #define KAA_LOG_INFO(...)
173 #if KAA_LOG_LEVEL_DEBUG_ENABLED
174 #define KAA_LOG_DEBUG(logger, err, ...) kaa_log_write(logger, __FILE__, __LINE__, KAA_LOG_LEVEL_DEBUG, err, __VA_ARGS__)
176 #define KAA_LOG_DEBUG(...)
179 #if KAA_LOG_LEVEL_TRACE_ENABLED
180 #define KAA_LOG_TRACE(logger, err, ...) kaa_log_write(logger, __FILE__, __LINE__, KAA_LOG_LEVEL_TRACE, err, __VA_ARGS__)
182 #define KAA_LOG_TRACE(...)
186 #define KAA_LOG_TRACE_LDB(logger, err, ...) KAA_LOG_TRACE(logger, err, ...)
188 #define KAA_LOG_TRACE_LDB(...)
194 #define KAA_TRACE_IN(logger) KAA_LOG_TRACE(logger, KAA_ERR_NONE, "--> %s()", __FUNCTION__)
195 #define KAA_TRACE_OUT(logger) KAA_LOG_TRACE(logger, KAA_ERR_NONE, "<-- %s()", __FUNCTION__)
kaa_error_t kaa_log_destroy(kaa_logger_t *logger)
Deinitializes and destroys the logger instance.
kaa_error_t kaa_log_set_sink(kaa_logger_t *self, FILE *sink)
Sets user sink for log output.
uint8_t kaa_log_level_t
Log level type.
kaa_error_t kaa_set_max_log_level(kaa_logger_t *self, kaa_log_level_t max_log_level)
Sets the maximum log level.
struct kaa_logger_t kaa_logger_t
void kaa_log_write(kaa_logger_t *self, const char *source_file, int lineno, kaa_log_level_t log_level, kaa_error_t error_code, const char *format,...)
Compiles a log message and puts it into the sink.
kaa_error_t kaa_log_create(kaa_logger_t **logger_p, size_t buffer_size, kaa_log_level_t max_log_level, FILE *sink)
Creates and initializes a logger instance.
kaa_log_level_t kaa_get_max_log_level(const kaa_logger_t *self)
Retrieves the current log level.