diff --git a/srcs/libs/include/zlog_module.h b/srcs/libs/include/zlog_module.h index 509e11a..6a7b582 100644 --- a/srcs/libs/include/zlog_module.h +++ b/srcs/libs/include/zlog_module.h @@ -9,66 +9,74 @@ extern "C" { #endif #include -#define DEF_ZLOG_MOD(ZLOG_MOD) \ - ZLOG_MOD(ZLOG_MOD_MAIN, "MAIN") \ - ZLOG_MOD(ZLOG_MOD_TASK, "TASK") \ - ZLOG_MOD(ZLOG_MOD_INIT, "INIT") \ - ZLOG_MOD(ZLOG_MOD_MISC, "MISC") \ - ZLOG_MOD(ZLOG_MOD_WATCH, "WATCH") \ - ZLOG_MOD(ZLOG_MOD_CONFIG, "CONFIG") \ - ZLOG_MOD(ZLOG_MOD_NET, "NET") \ - ZLOG_MOD(ZLOG_MOD_CRYPTO, "CRYPTO") \ - ZLOG_MOD(ZLOG_MOD_MQ, "MQ") \ - ZLOG_MOD(ZLOG_MOD_PROTO, "PROTO") \ - ZLOG_MOD(ZLOG_MOD_HTTPD, "HTTPD") \ - ZLOG_MOD(ZLOG_MOD_USER, "USER") \ - ZLOG_MOD(ZLOG_MOD_PPPOE, "PPPOE") \ - ZLOG_MOD(ZLOG_MOD_VXLAN, "VXLAN") \ - ZLOG_MOD(ZLOG_MOD_LWIP, "LWIP") \ - ZLOG_MOD(ZLOG_MOD_OPENDHCPD, "DHCPD") +enum { + ZLOG_LEVEL_TRACE = 10, +}; -#define GENERATE_ZLOG_MOD_ENUM(ENUM, x) ENUM, +typedef enum { + trace = ZLOG_LEVEL_TRACE, + debug = ZLOG_LEVEL_DEBUG, + info = ZLOG_LEVEL_INFO, + notice = ZLOG_LEVEL_NOTICE, + warn = ZLOG_LEVEL_WARN, + error = ZLOG_LEVEL_ERROR, + fatal = ZLOG_LEVEL_FATAL +} ZLOG_LV; + +#define DEF_ZLOG_MOD(ZLOG_MOD) \ + ZLOG_MOD(ZLOG_MOD_MAIN, ZLOG_LEVEL_DEBUG, "MAIN") \ + ZLOG_MOD(ZLOG_MOD_TASK, ZLOG_LEVEL_DEBUG, "TASK") \ + ZLOG_MOD(ZLOG_MOD_INIT, ZLOG_LEVEL_DEBUG, "INIT") \ + ZLOG_MOD(ZLOG_MOD_MISC, ZLOG_LEVEL_DEBUG, "MISC") \ + ZLOG_MOD(ZLOG_MOD_WATCH, ZLOG_LEVEL_DEBUG, "WATCH") \ + ZLOG_MOD(ZLOG_MOD_CONFIG, ZLOG_LEVEL_DEBUG, "CONFIG") \ + ZLOG_MOD(ZLOG_MOD_NET, ZLOG_LEVEL_DEBUG, "NET") \ + ZLOG_MOD(ZLOG_MOD_CRYPTO, ZLOG_LEVEL_DEBUG, "CRYPTO") \ + ZLOG_MOD(ZLOG_MOD_MQ, ZLOG_LEVEL_DEBUG, "MQ") \ + ZLOG_MOD(ZLOG_MOD_PROTO, ZLOG_LEVEL_DEBUG, "PROTO") \ + ZLOG_MOD(ZLOG_MOD_HTTPD, ZLOG_LEVEL_INFO, "HTTPD") \ + ZLOG_MOD(ZLOG_MOD_USER, ZLOG_LEVEL_DEBUG, "USER") \ + ZLOG_MOD(ZLOG_MOD_PPPOE, ZLOG_LEVEL_DEBUG, "PPPOE") \ + ZLOG_MOD(ZLOG_MOD_VXLAN, ZLOG_LEVEL_DEBUG, "VXLAN") \ + ZLOG_MOD(ZLOG_MOD_LWIP, ZLOG_LEVEL_DEBUG, "LWIP") \ + ZLOG_MOD(ZLOG_MOD_OPENDHCPD, ZLOG_LEVEL_DEBUG, "DHCPD") + +#define GENERATE_ZLOG_MOD_ENUM(ENUM, lv, x) ENUM, typedef enum { DEF_ZLOG_MOD(GENERATE_ZLOG_MOD_ENUM) } ZLOG_MOD_NAME; -//typedef enum { -// ZLOG_MOD_MAIN, -// ZLOG_MOD_TASK, -// ZLOG_MOD_INIT, -// ZLOG_MOD_MISC, -// ZLOG_MOD_CONFIG, -// ZLOG_MOD_NET, -// ZLOG_MOD_CRYPTO, -// ZLOG_MOD_MQ, -// ZLOG_MOD_PROTO, -// ZLOG_MOD_HTTPD, -//#ifdef USED_LWIP -// ZLOG_MOD_USER, -// ZLOG_MOD_PPPOE, -// ZLOG_MOD_VXLAN, -// ZLOG_MOD_LWIP, -//#endif -// ZLOG_MOD_OPENDHCPD, -// ZLOG_MOD_MAX, -//} ZLOG_MOD_NAME; +#define zlog_trace(cat, format, ...) \ + zlog(cat, \ + __FILE__, \ + sizeof(__FILE__) - 1, \ + __func__, \ + sizeof(__func__) - 1, \ + __LINE__, \ + ZLOG_LEVEL_TRACE, \ + format, \ + ##__VA_ARGS__) #define LOG_MSG(level, format, ...) LOG_MOD(level, ZLOG_MOD_MAIN, format, ##__VA_ARGS__) #define LOG_MSG_HEX(level, format, ...) LOG_MOD_HEX(level, ZLOG_MOD_MAIN, format, ##__VA_ARGS__) -#define LOG_MOD(level, mod, format, ...) \ - do { \ - zlog_##level(zlog_get_mod_cat((mod)), format, ##__VA_ARGS__); \ +#define LOG_MOD(level, mod, format, ...) \ + do { \ + if (zlog_verify_level(level, mod)) { \ + zlog_##level(zlog_get_mod_cat((mod)), format, ##__VA_ARGS__); \ + } \ } while (0) -#define LOG_MOD_HEX(level, mod, format, ...) \ - do { \ - hzlog_##level(zlog_get_mod_cat((mod)), format, ##__VA_ARGS__); \ +#define LOG_MOD_HEX(level, mod, format, ...) \ + do { \ + if (zlog_verify_level(level, mod)) { \ + hzlog_##level(zlog_get_mod_cat((mod)), format, ##__VA_ARGS__); \ + } \ } while (0) zlog_category_t *zlog_get_mod_cat(ZLOG_MOD_NAME logMod); - +int zlog_verify_level(int level, ZLOG_MOD_NAME logMod); #ifdef __cplusplus } #endif diff --git a/srcs/libs/zlog_module/zlog_module.c b/srcs/libs/zlog_module/zlog_module.c index c21350e..b739cb2 100644 --- a/srcs/libs/zlog_module/zlog_module.c +++ b/srcs/libs/zlog_module/zlog_module.c @@ -1,6 +1,7 @@ // // Created by xajhuang on 2023/2/6. // +#include #include "zlog_module.h" #include "misc.h" @@ -8,14 +9,15 @@ typedef struct { ZLOG_MOD_NAME logModule; + int minLevel; zlog_category_t *pCat; char catName[MAX_ZLOG_MOD_LEN]; } ZLOG_MODULE; -#define GENERATE_ENUM_ARRAY(ENUM, desc) {ENUM, NULL, desc}, +#define GENERATE_ENUM_ARRAY(ENUM, lv, desc) {ENUM, lv, NULL, desc}, static ZLOG_MODULE g_zlogModule[] = { - DEF_ZLOG_MOD(GENERATE_ENUM_ARRAY) {-1, NULL, "UNKNOWN"} + DEF_ZLOG_MOD(GENERATE_ENUM_ARRAY) {-1, ZLOG_LEVEL_FATAL, NULL, "UNKNOWN"} }; zlog_category_t *zlog_get_mod_cat(ZLOG_MOD_NAME logMod) { @@ -29,3 +31,7 @@ zlog_category_t *zlog_get_mod_cat(ZLOG_MOD_NAME logMod) { return g_zlogModule[logMod].pCat; } + +int zlog_verify_level(int level, ZLOG_MOD_NAME logMod) { + return (level >= g_zlogModule[logMod].minLevel); +}