Merge branch 'dev'

This commit is contained in:
2025-05-15 10:30:53 +08:00
7 changed files with 30 additions and 11 deletions

View File

@@ -24,3 +24,9 @@ if (TEST)
enable_testing() enable_testing()
add_subdirectory(tests) add_subdirectory(tests)
endif() 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)

View File

@@ -16,11 +16,11 @@ typedef struct log_Handler {
/** /**
* @brief 文件处理器 * @brief 文件处理器
* @param name 文件名 * @param file_name 文件名
* @param max_size 文件最大大小 * @param max_size 文件最大大小
* @return * @return
*/ */
log_Handler *loggingHandlerFile(const char *name, unsigned int max_size); log_Handler *loggingHandlerFile(const char *file_name, unsigned int max_size);
/** /**
* @brief 控制台处理器 * @brief 控制台处理器

View File

@@ -11,3 +11,4 @@ else()
add_library(${PROJECT_NAME} ${SRC}) add_library(${PROJECT_NAME} ${SRC})
endif() endif()
install(TARGETS ${PROJECT_NAME} LIBRARY DESTINATION lib)

View File

@@ -50,7 +50,7 @@ static void outputFileHandler(log_Handler *handler, const char *message) {
changeFile(handler); 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]; char new_file_name[FILE_NAME_MAX_SIZE];
int suffix = 0; int suffix = 0;
unsigned int file_size; unsigned int file_size;
@@ -60,7 +60,7 @@ log_Handler *loggingHandlerFile(const char *name, unsigned int max_size) {
/// 获取未写满于设置最大文件大小的文件名 /// 获取未写满于设置最大文件大小的文件名
do { 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"); fp = fopen(new_file_name, "at");
if (fp == NULL) if (fp == NULL)
goto ERROR; 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_max = max_size;
handler_ex->file_size = file_size; handler_ex->file_size = file_size;
handler_ex->suffix = suffix; handler_ex->suffix = suffix;
handler_ex->file_name = strdup(name); handler_ex->file_name = strdup(file_name);
if (handler_ex->file_name == NULL) if (handler_ex->file_name == NULL)
goto ERROR; goto ERROR;

View File

@@ -18,6 +18,7 @@
#define LOG_BUFFER_SIZE 4096 // 日志缓冲区大小,单个日志长度不能超过该值 #define LOG_BUFFER_SIZE 4096 // 日志缓冲区大小,单个日志长度不能超过该值
static Logger *G_LOGGER = NULL; // 全局日志对象,唯一实例
static Logger *G_LOGGER = NULL; // 全局日志对象,唯一实例 static Logger *G_LOGGER = NULL; // 全局日志对象,唯一实例
/** /**
@@ -38,6 +39,10 @@ static bool addHandler(log_Handler *handler) {
return true; return true;
} }
/**
* @brief 为日志添加一个filter
* @param filter 过滤器对象
*/
/** /**
* @brief 为日志添加一个filter * @brief 为日志添加一个filter
* @param filter 过滤器对象 * @param filter 过滤器对象
@@ -62,6 +67,13 @@ static bool addFilter(log_filter *filter) {
return true; return true;
} }
/**
* @brief 输出到handler
* @param handler 处理器对象
* @param level 日志等级
* @param color 应用的颜色
* @param message 日志内容
*/
/** /**
* @brief 输出到handler * @brief 输出到handler
* @param handler 处理器对象 * @param handler 处理器对象
@@ -106,10 +118,10 @@ static void output_to_handler(log_Handler *handler,
* @param ... 格式化参数列表 * @param ... 格式化参数列表
* @return * @return
*/ */
static void _builtin_cope(log_level level_e, static void log_cope(log_level level_e,
char *level, char *level,
const char *color, const char *color,
const char *message) { const char *message) {
if (G_LOGGER == NULL) { if (G_LOGGER == NULL) {
return; return;
} }

View File

@@ -6,7 +6,7 @@
#include <time.h> #include <time.h>
int main() { int main() {
Logger *logger = newDefaultLogger("testLogger", LOG_DEBUG); Logger *logger = newDefaultLogger(__FILE__, LOG_DEBUG);
Log_info("This is an info message"); Log_info("This is an info message");
Log_error("This is an error message%s", "123"); Log_error("This is an error message%s", "123");

View File

@@ -1,7 +1,7 @@
#include "logging.h" #include "logging.h"
int main() { int main() {
Logger *logger = newDefaultLogger("testLogger", LOG_DEBUG); Logger *logger = newDefaultLogger(__FILE__, LOG_DEBUG);
Log_info("This is an info message"); Log_info("This is an info message");
Log_error("This is an error message%s", "123"); Log_error("This is an error message%s", "123");