完成拦截器设计

This commit is contained in:
2024-08-13 22:23:34 +08:00
parent a823bab944
commit 2608dfa078
11 changed files with 298 additions and 32 deletions

View File

@@ -22,17 +22,29 @@ typedef enum {
L_OK,
} log_status;
typedef struct Handler {
typedef struct log_Handler {
void* out;
bool apply_color;
bool need_free; //是否有资源释放需求
void (*_free)(struct log_Handler* handler);//释放资源
} log_Handler;
typedef struct log_Interceptor {
log_level level; //拦截级别
log_Handler* handler; //拦截目标处理器
bool need_free; //是否有资源释放需求
bool (*_dispose)(char* level,const char *message, ...); //拦截触发器
void (*_free)(struct log_Interceptor* Interceptor); //释放资源
} log_Interceptor;
//日志操作器
typedef struct Logger
{
log_level level;
log_Handler* handler;
log_Interceptor* interceptor;
const char* name;
void (*fatal)(const char* format, ...);
void (*error)(const char* format, ...);
@@ -43,6 +55,7 @@ typedef struct Logger
void (*addHandler)(log_Handler* handler);
// void (*addFormat)(const char* format);
// void (*addFilter)(const char* filter);
void (*addInterceptor)(log_Interceptor* Interceptor);
} Logger;
@@ -54,13 +67,21 @@ typedef struct Logging {
Logging* createLogging(); //创建日志操作器
Logging* createLogging();
log_status destroyLogging(Logging* logging);
Logger* getCurrentLogger(void);
log_Handler* fileHandler(const char* name); //文件处理器
log_Handler* consoleHandler(const char* name); //控制台处理器
/**
* @def 创建日志处理器
* @file logging-handler.c
*/
log_Handler* fileHandler(const char* name);
log_Handler* consoleHandler(const char* name);
log_Interceptor* substringInterceptor(char *keywords[], int count, log_level level, log_Handler* handler);
#endif // __LOGGING_H