5 Commits

Author SHA1 Message Date
65202f624f Merge pull request '1.1.0-dev' (#6) from 1.1.0-dev into main
Reviewed-on: #6
2025-11-03 16:41:09 +08:00
5b218d5f9d feat: 统一命名 2025-11-03 16:39:27 +08:00
3ae31fb4ec Merge pull request 'dev' (#5) from dev into main
Reviewed-on: #5
2025-11-03 16:27:55 +08:00
7e9d761251 docs: 更新README,升级logging依赖至1.0.0 2025-10-18 09:12:25 +08:00
2732791435 Merge pull request 'dev' (#2) from dev into main
Reviewed-on: #2
2025-08-20 16:10:13 +08:00
8 changed files with 63 additions and 62 deletions

View File

@@ -38,7 +38,7 @@ int main() {
Log_debug("This is a debug message"); Log_debug("This is a debug message");
Log_warning("This is a warning message%s", "123"); Log_warning("This is a warning message%s", "123");
destroyDefaultLogger(); loggingDestroyAll();
return 0; return 0;
} }
``` ```
@@ -50,7 +50,7 @@ int main() {
int main() { int main() {
log_Handler *hander = loggingHandlerFile("test_log", 1024 * 1024 * 10); log_Handler *hander = loggingHandlerFile("test_log", 1024 * 1024 * 10);
addHandler(getDefaultLogger(), hander); loggingAddHandler(loggingGetDefaultLogger(), hander);
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");
@@ -58,7 +58,7 @@ int main() {
Log_debug("This is a debug message"); Log_debug("This is a debug message");
Log_warning("This is a warning message%s", "123"); Log_warning("This is a warning message%s", "123");
destroyDefaultLogger(); loggingDestroyAll();
return 0; return 0;
} }
``` ```
@@ -91,7 +91,7 @@ int main() {
loggingHandlerFile("test_interceptor", 1024 * 1024), loggingHandlerFile("test_interceptor", 1024 * 1024),
false); false);
addFilter(getDefaultLogger(), tint); loggingAddFilter(loggingGetDefaultLogger(), tint);
char *test2[] = {"123", NULL}; char *test2[] = {"123", NULL};
@@ -101,7 +101,7 @@ int main() {
loggingHandlerFile("test_interceptor1", 1024 * 1024), loggingHandlerFile("test_interceptor1", 1024 * 1024),
true); true);
addFilter(getDefaultLogger(), tint1); loggingAddFilter(loggingGetDefaultLogger(), tint1);
printf("\n"); printf("\n");
printf("filter added\n"); printf("filter added\n");
@@ -113,7 +113,7 @@ int main() {
Log_debug("This is a debug message"); Log_debug("This is a debug message");
Log_warning("This is a warning message%s", "123"); Log_warning("This is a warning message%s", "123");
destroyDefaultLogger(); loggingDestroyAll();
return 0; return 0;
} }
``` ```

View File

@@ -23,7 +23,7 @@ conan create .
在你的项目的conanfile.txt中添加 在你的项目的conanfile.txt中添加
```txt ```txt
[requires] [requires]
logging/0.5.0 logging/1.0.0
``` ```
```shell ```shell
@@ -53,7 +53,7 @@ int main() {
Log_debug("This is a debug message"); Log_debug("This is a debug message");
Log_warning("This is a warning message%s", "123"); Log_warning("This is a warning message%s", "123");
destroyDefaultLogger(); loggingDestroyAll();
return 0; return 0;
} }
``` ```
@@ -65,7 +65,7 @@ int main() {
int main() { int main() {
log_Handler *hander = loggingHandlerFile("test_log", 1024 * 1024 * 10); log_Handler *hander = loggingHandlerFile("test_log", 1024 * 1024 * 10);
addHandler(getDefaultLogger(), hander); loggingAddHandler(loggingGetDefaultLogger(), hander);
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");
@@ -73,7 +73,7 @@ int main() {
Log_debug("This is a debug message"); Log_debug("This is a debug message");
Log_warning("This is a warning message%s", "123"); Log_warning("This is a warning message%s", "123");
destroyDefaultLogger(); loggingDestroyAll();
return 0; return 0;
} }
``` ```
@@ -107,7 +107,7 @@ int main() {
loggingHandlerFile("test_interceptor", 1024 * 1024), loggingHandlerFile("test_interceptor", 1024 * 1024),
false); false);
addFilter(getDefaultLogger(), tint); loggingAddFilter(loggingGetDefaultLogger(), tint);
char *test2[] = {"123", NULL}; char *test2[] = {"123", NULL};
@@ -117,7 +117,7 @@ int main() {
loggingHandlerFile("test_interceptor1", 1024 * 1024), loggingHandlerFile("test_interceptor1", 1024 * 1024),
true); true);
addFilter(getDefaultLogger(), tint1); loggingAddFilter(loggingGetDefaultLogger(), tint1);
printf("\n"); printf("\n");
printf("filter added\n"); printf("filter added\n");
@@ -129,7 +129,7 @@ int main() {
Log_debug("This is a debug message"); Log_debug("This is a debug message");
Log_warning("This is a warning message%s", "123"); Log_warning("This is a warning message%s", "123");
destroyDefaultLogger(); loggingDestroyAll();
return 0; return 0;
} }
``` ```

View File

@@ -15,27 +15,28 @@ extern "C" {
// 默认日志器宏 // 默认日志器宏
#define Log_fatal(format, ...) \ #define Log_fatal(format, ...) \
logMessage(NULL, LOG_FATAL, __FILE__, __LINE__, format, ##__VA_ARGS__) loggingMessage(NULL, LOG_FATAL, __FILE__, __LINE__, format, ##__VA_ARGS__)
#define Log_error(format, ...) \ #define Log_error(format, ...) \
logMessage(NULL, LOG_ERROR, __FILE__, __LINE__, format, ##__VA_ARGS__) loggingMessage(NULL, LOG_ERROR, __FILE__, __LINE__, format, ##__VA_ARGS__)
#define Log_warning(format, ...) \ #define Log_warning(format, ...) \
logMessage(NULL, LOG_WARNING, __FILE__, __LINE__, format, ##__VA_ARGS__) loggingMessage(NULL, LOG_WARNING, __FILE__, __LINE__, format, ##__VA_ARGS__)
#define Log_info(format, ...) \ #define Log_info(format, ...) \
logMessage(NULL, LOG_INFO, __FILE__, __LINE__, format, ##__VA_ARGS__) loggingMessage(NULL, LOG_INFO, __FILE__, __LINE__, format, ##__VA_ARGS__)
#define Log_debug(format, ...) \ #define Log_debug(format, ...) \
logMessage(NULL, LOG_DEBUG, __FILE__, __LINE__, format, ##__VA_ARGS__) loggingMessage(NULL, LOG_DEBUG, __FILE__, __LINE__, format, ##__VA_ARGS__)
// 日志器宏 // 日志器宏
#define log_fatal(logger, format, ...) \ #define log_fatal(logger, format, ...) \
logMessage(logger, LOG_FATAL, __FILE__, __LINE__, format, ##__VA_ARGS__) loggingMessage(logger, LOG_FATAL, __FILE__, __LINE__, format, ##__VA_ARGS__)
#define log_error(logger, format, ...) \ #define log_error(logger, format, ...) \
logMessage(logger, LOG_ERROR, __FILE__, __LINE__, format, ##__VA_ARGS__) loggingMessage(logger, LOG_ERROR, __FILE__, __LINE__, format, ##__VA_ARGS__)
#define log_warning(logger, format, ...) \ #define log_warning(logger, format, ...) \
logMessage(logger, LOG_WARNING, __FILE__, __LINE__, format, ##__VA_ARGS__) loggingMessage( \
logger, LOG_WARNING, __FILE__, __LINE__, format, ##__VA_ARGS__)
#define log_info(logger, format, ...) \ #define log_info(logger, format, ...) \
logMessage(logger, LOG_INFO, __FILE__, __LINE__, format, ##__VA_ARGS__) loggingMessage(logger, LOG_INFO, __FILE__, __LINE__, format, ##__VA_ARGS__)
#define log_debug(logger, format, ...) \ #define log_debug(logger, format, ...) \
logMessage(logger, LOG_DEBUG, __FILE__, __LINE__, format, ##__VA_ARGS__) loggingMessage(logger, LOG_DEBUG, __FILE__, __LINE__, format, ##__VA_ARGS__)
typedef struct Logger { typedef struct Logger {
log_level level; log_level level;
@@ -44,41 +45,41 @@ typedef struct Logger {
const char *name; const char *name;
} Logger; } Logger;
bool addHandler(Logger *logger, log_Handler *handler); bool loggingAddHandler(Logger *logger, log_Handler *handler);
bool addFilter(Logger *logger, log_filter *filter); bool loggingAddFilter(Logger *logger, log_filter *filter);
void logMessage(Logger *logger, void loggingMessage(Logger *logger,
log_level level, log_level level,
const char *file, const char *file,
int line, int line,
const char *message, const char *message,
...); ...);
/** /**
* @brief 创建一个日志句柄对象 * @brief 创建一个日志句柄对象
* @param name 日志器名称 * @param name 日志器名称
* @return 日志句柄对象 * @return 日志句柄对象
*/ */
Logger *newLogger(const char *name); Logger *loggingNewLogger(const char *name);
/** /**
* @brief 获取默认日志对象 * @brief 获取默认日志对象
* @return 默认日志对象 * @return 默认日志对象
*/ */
Logger *getDefaultLogger(void); Logger *loggingGetDefaultLogger(void);
Logger *getLogger(const char *name); Logger *loggingGetLogger(const char *name);
/** /**
* @brief 销毁日志对象,该方法会销毁默认日志对象 * @brief 销毁日志对象,该方法会销毁默认日志对象
*/ */
void destroyDefaultLogger(void); void loggingDestroyAll(void);
/** /**
* @brief 销毁日志对象 * @brief 销毁日志对象
* @param logger 日志对象 * @param logger 日志对象
* @return void * @return void
*/ */
void destroyLogger(Logger *logger); void loggingDestroyLogger(Logger *logger);
#ifdef __cplusplus #ifdef __cplusplus
} }

View File

@@ -27,7 +27,7 @@ static Map *LOGGER_MAP = NULL; // 日志对象映射表
* @brief 为日志添加一个handler * @brief 为日志添加一个handler
* @param handler 处理器对象 * @param handler 处理器对象
*/ */
bool addHandler(Logger *logger, log_Handler *handler) { bool loggingAddHandler(Logger *logger, log_Handler *handler) {
if (logger == NULL || handler == NULL) { if (logger == NULL || handler == NULL) {
return false; return false;
} }
@@ -45,7 +45,7 @@ bool addHandler(Logger *logger, log_Handler *handler) {
* @brief 为日志添加一个filter * @brief 为日志添加一个filter
* @param filter 过滤器对象 * @param filter 过滤器对象
*/ */
bool addFilter(Logger *logger, log_filter *filter) { bool loggingAddFilter(Logger *logger, log_filter *filter) {
if (logger == NULL || filter == NULL) { if (logger == NULL || filter == NULL) {
return false; return false;
} }
@@ -142,16 +142,16 @@ log_cope(Logger *logger, char *level, const char *color, const char *message) {
output_to_handler(logger, level, color, message); output_to_handler(logger, level, color, message);
} }
void logMessage(Logger *logger, void loggingMessage(Logger *logger,
log_level level, log_level level,
const char *file, const char *file,
int line, int line,
const char *message, const char *message,
...) { ...) {
Logger *_logger = NULL; Logger *_logger = NULL;
if (logger == NULL) { if (logger == NULL) {
if (ROOT_LOGGER == NULL) { if (ROOT_LOGGER == NULL) {
ROOT_LOGGER = newLogger("ROOT"); // 创建根日志对象 ROOT_LOGGER = loggingNewLogger("ROOT"); // 创建根日志对象
} }
_logger = ROOT_LOGGER; _logger = ROOT_LOGGER;
} else { } else {
@@ -197,7 +197,7 @@ void logMessage(Logger *logger,
* @param name 日志器名称 * @param name 日志器名称
* @return 日志器对象 * @return 日志器对象
*/ */
Logger *newLogger(const char *name) { Logger *loggingNewLogger(const char *name) {
Logger *logger = (Logger *)malloc(sizeof(Logger)); Logger *logger = (Logger *)malloc(sizeof(Logger));
if (logger == NULL) { if (logger == NULL) {
return NULL; return NULL;
@@ -217,12 +217,12 @@ Logger *newLogger(const char *name) {
return logger; return logger;
} }
Logger *getDefaultLogger(void) { Logger *loggingGetDefaultLogger(void) {
if (ROOT_LOGGER != NULL) { if (ROOT_LOGGER != NULL) {
return ROOT_LOGGER; return ROOT_LOGGER;
} }
ROOT_LOGGER = newLogger("ROOT"); ROOT_LOGGER = loggingNewLogger("ROOT");
return ROOT_LOGGER; return ROOT_LOGGER;
} }
@@ -232,7 +232,7 @@ Logger *getDefaultLogger(void) {
* @param level 日志等级 * @param level 日志等级
* @return 日志器对象 * @return 日志器对象
*/ */
Logger *getLogger(const char *name) { Logger *loggingGetLogger(const char *name) {
if (name == NULL) { if (name == NULL) {
return NULL; return NULL;
} }
@@ -257,7 +257,7 @@ Logger *getLogger(const char *name) {
return logger; return logger;
} }
void destroyLogger(Logger *logger) { void loggingDestroyLogger(Logger *logger) {
if (logger != NULL) { if (logger != NULL) {
if (logger->handler != NULL) { if (logger->handler != NULL) {
logger->handler->_free(logger->handler); logger->handler->_free(logger->handler);
@@ -280,13 +280,13 @@ static void
__destroyLoggerForeach(const char *key, void *value, void *user_data) { __destroyLoggerForeach(const char *key, void *value, void *user_data) {
(void)user_data; (void)user_data;
(void)key; (void)key;
destroyLogger(*(Logger **)value); loggingDestroyLogger(*(Logger **)value);
} }
/** /**
* @brief 销毁日志对象 * @brief 销毁日志对象
*/ */
void destroyDefaultLogger(void) { void loggingDestroyAll(void) {
map_foreach(LOGGER_MAP, __destroyLoggerForeach, NULL); map_foreach(LOGGER_MAP, __destroyLoggerForeach, NULL);
map_destroy(LOGGER_MAP); map_destroy(LOGGER_MAP);
} }

View File

@@ -20,7 +20,7 @@ int main() {
loggingHandlerFile("test_interceptor", 1024 * 1024), loggingHandlerFile("test_interceptor", 1024 * 1024),
false); false);
addFilter(getDefaultLogger(), tint); loggingAddFilter(loggingGetDefaultLogger(), tint);
char *test2[] = {"123", NULL}; char *test2[] = {"123", NULL};
@@ -30,7 +30,7 @@ int main() {
loggingHandlerFile("test_interceptor1", 1024 * 1024), loggingHandlerFile("test_interceptor1", 1024 * 1024),
true); true);
addFilter(getDefaultLogger(), tint1); loggingAddFilter(loggingGetDefaultLogger(), tint1);
printf("\n"); printf("\n");
printf("filter added\n"); printf("filter added\n");
@@ -42,6 +42,6 @@ int main() {
Log_debug("This is a debug message"); Log_debug("This is a debug message");
Log_warning("This is a warning message%s", "123"); Log_warning("This is a warning message%s", "123");
destroyDefaultLogger(); loggingDestroyAll();
return 0; return 0;
} }

View File

@@ -3,7 +3,7 @@
int main() { int main() {
log_Handler *hander = loggingHandlerFile("test_log", 1024 * 1024 * 10); log_Handler *hander = loggingHandlerFile("test_log", 1024 * 1024 * 10);
addHandler(getDefaultLogger(), hander); loggingAddHandler(loggingGetDefaultLogger(), hander);
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");
@@ -11,6 +11,6 @@ int main() {
Log_debug("This is a debug message"); Log_debug("This is a debug message");
Log_warning("This is a warning message%s", "123"); Log_warning("This is a warning message%s", "123");
destroyDefaultLogger(); loggingDestroyAll();
return 0; return 0;
} }

View File

@@ -3,13 +3,13 @@
#include <stdio.h> #include <stdio.h>
int main() { int main() {
Logger *t1 = getLogger("Test1"); Logger *t1 = loggingGetLogger("Test1");
t1->level = LOG_ERROR; t1->level = LOG_ERROR;
Logger *t2 = getLogger("Test2"); Logger *t2 = loggingGetLogger("Test2");
t2->level = LOG_DEBUG; t2->level = LOG_DEBUG;
Logger *t11 = getLogger("Test1"); Logger *t11 = loggingGetLogger("Test1");
if (t1 == t11) { if (t1 == t11) {
printf("t1 and t11 are the same\n"); printf("t1 and t11 are the same\n");
@@ -19,6 +19,6 @@ int main() {
return 1; return 1;
} }
destroyDefaultLogger(); loggingDestroyAll();
return 0; return 0;
} }

View File

@@ -7,6 +7,6 @@ int main() {
Log_debug("This is a debug message"); Log_debug("This is a debug message");
Log_warning("This is a warning message%s", "123"); Log_warning("This is a warning message%s", "123");
destroyDefaultLogger(); loggingDestroyAll();
return 0; return 0;
} }