Compare commits
41 Commits
6ff484fef8
...
8fef266119
| Author | SHA1 | Date | |
|---|---|---|---|
| 8fef266119 | |||
| e04a960777 | |||
| b2eec437cd | |||
| 3f5153b110 | |||
| 09dd534675 | |||
| 633e91f80b | |||
|
|
fde26f4f42 | ||
| 214665ec91 | |||
| 942970336c | |||
| 1c09c41ea3 | |||
| 9b777e4862 | |||
|
|
0b749c8d1d | ||
| 5c24b070bb | |||
| 915c18640a | |||
|
|
feca0ef8e3 | ||
| b9abf6c7d3 | |||
| 6ac7afd4c2 | |||
| 7afc3d3b41 | |||
|
|
a6392e27ce | ||
| 8a57c43180 | |||
| e57f0fa02c | |||
| de03985fef | |||
|
|
81cebc7a18 | ||
| 41004e5735 | |||
| de141cbafc | |||
| 668f88f8af | |||
| 34f818196e | |||
| 78341d522c | |||
| 2ecdefa239 | |||
| be445cdfe7 | |||
| 24f7124dfb | |||
| 8eb324ad23 | |||
|
|
406dbc5a79 | ||
| 0fa6097bbf | |||
| f6e2c31c85 | |||
|
|
c7c6af7dcf | ||
| 0d78195e4e | |||
| 01273809da | |||
| 4213c38730 | |||
| 9963f68175 | |||
| 85ae9d3deb |
@@ -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)
|
||||||
|
|||||||
@@ -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 控制台处理器
|
||||||
|
|||||||
@@ -11,3 +11,4 @@ else()
|
|||||||
add_library(${PROJECT_NAME} ${SRC})
|
add_library(${PROJECT_NAME} ${SRC})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
install(TARGETS ${PROJECT_NAME} LIBRARY DESTINATION lib)
|
||||||
@@ -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;
|
||||||
|
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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");
|
||||||
|
|||||||
@@ -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");
|
||||||
|
|||||||
Reference in New Issue
Block a user