diff --git a/CMakeLists.txt b/CMakeLists.txt index b62db78..61dd1cb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -24,3 +24,9 @@ if (TEST) enable_testing() add_subdirectory(tests) endif() + + +install(FILES include/logging.h DESTINATION include) +install(FILES include/logging/logging-core.h DESTINATION include/logging) +install(FILES include/logging/logging-filter.h DESTINATION include/logging) +install(FILES include/logging/logging-handler.h DESTINATION include/logging) diff --git a/include/logging/logging-handler.h b/include/logging/logging-handler.h index e4683ce..b434e1a 100644 --- a/include/logging/logging-handler.h +++ b/include/logging/logging-handler.h @@ -16,11 +16,11 @@ typedef struct log_Handler { /** * @brief 文件处理器 - * @param name 文件名 + * @param file_name 文件名 * @param max_size 文件最大大小 * @return */ -log_Handler *loggingHandlerFile(const char *name, unsigned int max_size); +log_Handler *loggingHandlerFile(const char *file_name, unsigned int max_size); /** * @brief 控制台处理器 diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 30a7898..991bba3 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -11,3 +11,4 @@ else() add_library(${PROJECT_NAME} ${SRC}) endif() +install(TARGETS ${PROJECT_NAME} LIBRARY DESTINATION lib) \ No newline at end of file diff --git a/src/handler/logging-handler-file.c b/src/handler/logging-handler-file.c index 1e7cc0f..5c7c2c4 100644 --- a/src/handler/logging-handler-file.c +++ b/src/handler/logging-handler-file.c @@ -50,7 +50,7 @@ static void outputFileHandler(log_Handler *handler, const char *message) { changeFile(handler); } -log_Handler *loggingHandlerFile(const char *name, unsigned int max_size) { +log_Handler *loggingHandlerFile(const char *file_name, unsigned int max_size) { char new_file_name[FILE_NAME_MAX_SIZE]; int suffix = 0; unsigned int file_size; @@ -60,7 +60,7 @@ log_Handler *loggingHandlerFile(const char *name, unsigned int max_size) { /// 获取未写满于设置最大文件大小的文件名 do { - sprintf(new_file_name, "%s_%d.log", name, suffix++); + sprintf(new_file_name, "%s_%d.log", file_name, suffix++); fp = fopen(new_file_name, "at"); if (fp == NULL) goto ERROR; @@ -77,7 +77,7 @@ log_Handler *loggingHandlerFile(const char *name, unsigned int max_size) { handler_ex->file_size_max = max_size; handler_ex->file_size = file_size; handler_ex->suffix = suffix; - handler_ex->file_name = strdup(name); + handler_ex->file_name = strdup(file_name); if (handler_ex->file_name == NULL) goto ERROR; diff --git a/src/logging.c b/src/logging.c index aa1494b..b960b63 100644 --- a/src/logging.c +++ b/src/logging.c @@ -18,6 +18,7 @@ #define LOG_BUFFER_SIZE 4096 // 日志缓冲区大小,单个日志长度不能超过该值 +static Logger *G_LOGGER = NULL; // 全局日志对象,唯一实例 static Logger *G_LOGGER = NULL; // 全局日志对象,唯一实例 /** @@ -38,6 +39,10 @@ static bool addHandler(log_Handler *handler) { return true; } +/** + * @brief 为日志添加一个filter + * @param filter 过滤器对象 + */ /** * @brief 为日志添加一个filter * @param filter 过滤器对象 @@ -62,6 +67,13 @@ static bool addFilter(log_filter *filter) { return true; } +/** + * @brief 输出到handler + * @param handler 处理器对象 + * @param level 日志等级 + * @param color 应用的颜色 + * @param message 日志内容 + */ /** * @brief 输出到handler * @param handler 处理器对象 @@ -106,10 +118,10 @@ static void output_to_handler(log_Handler *handler, * @param ... 格式化参数列表 * @return */ -static void _builtin_cope(log_level level_e, - char *level, - const char *color, - const char *message) { +static void log_cope(log_level level_e, + char *level, + const char *color, + const char *message) { if (G_LOGGER == NULL) { return; } diff --git a/tests/test-filter.c b/tests/test-filter.c index 83b0150..813425d 100644 --- a/tests/test-filter.c +++ b/tests/test-filter.c @@ -6,7 +6,7 @@ #include int main() { - Logger *logger = newDefaultLogger("testLogger", LOG_DEBUG); + Logger *logger = newDefaultLogger(__FILE__, LOG_DEBUG); Log_info("This is an info message"); Log_error("This is an error message%s", "123"); diff --git a/tests/test-simple.c b/tests/test-simple.c index f92565e..3f7e460 100644 --- a/tests/test-simple.c +++ b/tests/test-simple.c @@ -1,7 +1,7 @@ #include "logging.h" int main() { - Logger *logger = newDefaultLogger("testLogger", LOG_DEBUG); + Logger *logger = newDefaultLogger(__FILE__, LOG_DEBUG); Log_info("This is an info message"); Log_error("This is an error message%s", "123");