完成拦截器设计
This commit is contained in:
@@ -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
|
||||
Reference in New Issue
Block a user