Compare commits
5 Commits
f587b62a26
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 65202f624f | |||
| 5b218d5f9d | |||
| 3ae31fb4ec | |||
| 7e9d761251 | |||
| 2732791435 |
12
README.en.md
12
README.en.md
@@ -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;
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|||||||
14
README.md
14
README.md
@@ -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;
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|||||||
@@ -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
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
@@ -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;
|
||||||
}
|
}
|
||||||
@@ -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;
|
||||||
}
|
}
|
||||||
@@ -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;
|
||||||
}
|
}
|
||||||
@@ -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;
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user