30 #ifndef UTILS_SRC_LOG_H_ 31 #define UTILS_SRC_LOG_H_ 35 #include <sys/types.h> 44 #define LOG_FORCE_USING_STDOUT 58 typedef enum log_verbose_level_enum {
63 } log_verbose_level_t;
68 #define LOG_LINE_SIZE 1024 69 #define LOG_DATE_SIZE 64 74 #define LOG_BUF_LINES_NUM 15 77 char code[LOG_LINE_SIZE];
78 char desc[LOG_LINE_SIZE];
79 char date[LOG_DATE_SIZE];
89 #define __FILENAME__ strrchr("/" __FILE__, '/') + 1 91 #ifdef LOG_CTX_DEFULT // To be defined specifically in source files 92 #define _LOG(TYPE, FORMAT, ...) \ 93 log_trace(TYPE, NULL, __FILENAME__, __LINE__, FORMAT, ##__VA_ARGS__) 95 #define LOG_CTX_INIT(CTX) \ 96 log_ctx_t *__log_ctx= CTX 97 #define LOG_CTX_SET(CTX) \ 99 #define LOG_CTX_GET() __log_ctx 100 #define _LOG(TYPE, FORMAT, ...) \ 101 log_trace(TYPE, __log_ctx, __FILENAME__, __LINE__, FORMAT, \ 105 #define LOG(FORMAT, ...) _LOG(LOG_RAW, FORMAT, ##__VA_ARGS__) 106 #define LOGV(FORMAT, ...) _LOG(LOG_VERBOSE, FORMAT, ##__VA_ARGS__) 107 #define LOGW(FORMAT, ...) _LOG(LOG_WARNING, FORMAT, ##__VA_ARGS__) 108 #define LOGE(FORMAT, ...) _LOG(LOG_ERROR, FORMAT, ##__VA_ARGS__) 109 #define LOGEV(FORMAT, ...) _LOG(LOG_EVENT, FORMAT, ##__VA_ARGS__) 116 int log_module_open();
121 void log_module_close();
126 log_ctx_t* log_open(
int id);
131 void log_close(log_ctx_t **ref_log_ctx);
136 void log_trace(log_level_t type, log_ctx_t *log_ctx,
const char *filename,
137 int line,
const char *format, ...);
142 const llist_t* log_get(log_ctx_t *log_ctx);
147 void log_clear(log_ctx_t *log_ctx);
173 #define LOG_TRACE_BYTE_TABLE(LABEL, DATA, LEN, XSIZE) \ 174 log_trace_byte_table(LABEL, __FILENAME__, __LINE__, DATA, LEN, XSIZE); 175 void log_trace_byte_table(
const char *label,
const char *file,
int line,
176 uint8_t *data,
size_t len,
size_t xsize);