Compare commits
	
		
			1 Commits
		
	
	
		
			8e512563e4
			...
			v0.5.1
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 6ff484fef8 | 
							
								
								
									
										60
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										60
									
								
								README.md
									
									
									
									
									
								
							| @@ -49,11 +49,11 @@ cmake --install . | |||||||
| int main() { | int main() { | ||||||
|     Logger *logger = newDefaultLogger("testLogger", LOG_DEBUG); |     Logger *logger = newDefaultLogger("testLogger", 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"); | ||||||
|     log_fatal("This is an fatal message"); |     Log_fatal("This is an fatal message"); | ||||||
|     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(); |     destroyDefaultLogger(); | ||||||
|     return 0; |     return 0; | ||||||
| @@ -69,11 +69,11 @@ int main() { | |||||||
|     Logger *logger = newDefaultLogger("testLogger", LOG_DEBUG); |     Logger *logger = newDefaultLogger("testLogger", LOG_DEBUG); | ||||||
|     logger->addHandler(loggingHandlerFile("test1", 1024*1024)); |     logger->addHandler(loggingHandlerFile("test1", 1024*1024)); | ||||||
|  |  | ||||||
|     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"); | ||||||
|     log_fatal("This is an fatal message"); |     Log_fatal("This is an fatal message"); | ||||||
|     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(); |     destroyDefaultLogger(); | ||||||
|     return 0; |     return 0; | ||||||
| @@ -95,11 +95,11 @@ int main() { | |||||||
| int main() { | int main() { | ||||||
|     Logger  *logger = newDefaultLogger("testLogger", LOG_DEBUG); |     Logger  *logger = newDefaultLogger("testLogger", 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"); | ||||||
|     log_fatal("This is an fatal message"); |     Log_fatal("This is an fatal message"); | ||||||
|     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"); | ||||||
|  |  | ||||||
|     char *test1[]         = {"123", "tt", NULL}; |     char *test1[]         = {"123", "tt", NULL}; | ||||||
|  |  | ||||||
| @@ -115,11 +115,11 @@ int main() { | |||||||
|     printf("filter added\n"); |     printf("filter added\n"); | ||||||
|     printf("\n"); |     printf("\n"); | ||||||
|  |  | ||||||
|     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"); | ||||||
|     log_fatal("This is an fatal message"); |     Log_fatal("This is an fatal message"); | ||||||
|     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(); |     destroyDefaultLogger(); | ||||||
|     return 0; |     return 0; | ||||||
| @@ -136,11 +136,11 @@ int main() { | |||||||
| int main() { | int main() { | ||||||
|     Logger *logger = newDefaultLogger("testLogger", LOG_DEBUG); |     Logger *logger = newDefaultLogger("testLogger", 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"); | ||||||
|     log_fatal("This is an fatal message"); |     Log_fatal("This is an fatal message"); | ||||||
|     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"); | ||||||
|  |  | ||||||
|     char *test1[]         = {"This",NULL}; |     char *test1[]         = {"This",NULL}; | ||||||
|  |  | ||||||
| @@ -166,11 +166,11 @@ int main() { | |||||||
|     printf("filter added\n"); |     printf("filter added\n"); | ||||||
|     printf("\n"); |     printf("\n"); | ||||||
|  |  | ||||||
|     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"); | ||||||
|     log_fatal("This is an fatal message"); |     Log_fatal("This is an fatal message"); | ||||||
|     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(); |     destroyDefaultLogger(); | ||||||
|     return 0; |     return 0; | ||||||
|   | |||||||
| @@ -5,7 +5,7 @@ import os | |||||||
|  |  | ||||||
| class loggingRecipe(ConanFile): | class loggingRecipe(ConanFile): | ||||||
|     name = "logging" |     name = "logging" | ||||||
|     version = "0.5.0" |     version = "0.5.1" | ||||||
|     license = "MIT" |     license = "MIT" | ||||||
|     author = "321640253@qq.com" |     author = "321640253@qq.com" | ||||||
|     url = "https://github.com/WangZhongDian/logging.git" |     url = "https://github.com/WangZhongDian/logging.git" | ||||||
|   | |||||||
| @@ -12,6 +12,17 @@ | |||||||
| extern "C" { | extern "C" { | ||||||
| #endif | #endif | ||||||
|  |  | ||||||
|  | #define Log_fatal(format, ...)                                                 \ | ||||||
|  |     log_fatal(__FILE__, __LINE__, format, ##__VA_ARGS__) | ||||||
|  | #define Log_error(format, ...)                                                 \ | ||||||
|  |     log_error(__FILE__, __LINE__, format, ##__VA_ARGS__) | ||||||
|  | #define Log_warning(format, ...)                                               \ | ||||||
|  |     log_warning(__FILE__, __LINE__, format, ##__VA_ARGS__) | ||||||
|  | #define Log_info(format, ...)                                                  \ | ||||||
|  |     log_info(__FILE__, __LINE__, format, ##__VA_ARGS__) | ||||||
|  | #define Log_debug(format, ...)                                                 \ | ||||||
|  |     log_debug(__FILE__, __LINE__, format, ##__VA_ARGS__) | ||||||
|  |  | ||||||
| typedef struct Logger { | typedef struct Logger { | ||||||
|     log_level    level; |     log_level    level; | ||||||
|     log_Handler *handler; |     log_Handler *handler; | ||||||
| @@ -21,11 +32,11 @@ typedef struct Logger { | |||||||
|     bool (*addFilter)(log_filter *filter); |     bool (*addFilter)(log_filter *filter); | ||||||
| } Logger; | } Logger; | ||||||
|  |  | ||||||
| void log_fatal(const char *format, ...); | void log_fatal(const char *file, int line, const char *format, ...); | ||||||
| void log_error(const char *format, ...); | void log_error(const char *file, int line, const char *format, ...); | ||||||
| void log_warning(const char *format, ...); | void log_warning(const char *file, int line, const char *format, ...); | ||||||
| void log_info(const char *format, ...); | void log_info(const char *file, int line, const char *format, ...); | ||||||
| void log_debug(const char *format, ...); | void log_debug(const char *file, int line, const char *format, ...); | ||||||
|  |  | ||||||
| /** | /** | ||||||
| * @brief | * @brief | ||||||
|   | |||||||
| @@ -16,7 +16,7 @@ | |||||||
| #define RESET  "\033[0m" | #define RESET  "\033[0m" | ||||||
| #define CYAN   "\033[0;36m" | #define CYAN   "\033[0;36m" | ||||||
|  |  | ||||||
| #define LOG_BUFFER_SIZE 1024 // 日志缓冲区大小,单个日志长度不能超过该值 | #define LOG_BUFFER_SIZE 4096 // 日志缓冲区大小,单个日志长度不能超过该值 | ||||||
|  |  | ||||||
| static Logger *G_LOGGER = NULL; // 全局日志对象,唯一实例 | static Logger *G_LOGGER = NULL; // 全局日志对象,唯一实例 | ||||||
|  |  | ||||||
| @@ -75,23 +75,25 @@ static void output_to_handler(log_Handler *handler, | |||||||
|                               const char  *message) { |                               const char  *message) { | ||||||
|     char timeStr[20]; |     char timeStr[20]; | ||||||
|     getTimeStr(timeStr); |     getTimeStr(timeStr); | ||||||
|     char logStr[LOG_BUFFER_SIZE]; |     char logStr[LOG_BUFFER_SIZE * 2]; | ||||||
|     if (handler->apply_color) |     if (handler->apply_color) | ||||||
|         sprintf(logStr, |         snprintf(logStr, | ||||||
|                 "[%s]: %s %s%s%s %s\n", |                  LOG_BUFFER_SIZE * 2, | ||||||
|                 G_LOGGER->name, |                  "[%s]: %s %s%s%s %s\n", | ||||||
|                 timeStr, |                  G_LOGGER->name, | ||||||
|                 color, |                  timeStr, | ||||||
|                 level, |                  color, | ||||||
|                 RESET, |                  level, | ||||||
|                 message); |                  RESET, | ||||||
|  |                  message); | ||||||
|     else |     else | ||||||
|         sprintf(logStr, |         snprintf(logStr, | ||||||
|                 "[%s]: %s %s %s\n", |                  LOG_BUFFER_SIZE * 2, | ||||||
|                 G_LOGGER->name, |                  "[%s]: %s %s %s\n", | ||||||
|                 timeStr, |                  G_LOGGER->name, | ||||||
|                 level, |                  timeStr, | ||||||
|                 message); |                  level, | ||||||
|  |                  message); | ||||||
|  |  | ||||||
|     handler->output(handler, logStr); |     handler->output(handler, logStr); | ||||||
| } | } | ||||||
| @@ -129,58 +131,73 @@ static void _builtin_cope(log_level   level_e, | |||||||
|     output_to_handler(handler, level, color, message); |     output_to_handler(handler, level, color, message); | ||||||
| } | } | ||||||
|  |  | ||||||
| void log_fatal(const char *message, ...) { | void log_fatal(const char *file, int line, const char *message, ...) { | ||||||
|     if (G_LOGGER->level >= LOG_ERROR) { |     if (G_LOGGER->level >= LOG_ERROR) { | ||||||
|         char    logStr[LOG_BUFFER_SIZE]; |         char    logStr[LOG_BUFFER_SIZE]; | ||||||
|  |         char    finalLogStr[LOG_BUFFER_SIZE * 2]; | ||||||
|         va_list args; |         va_list args; | ||||||
|         va_start(args, message); |         va_start(args, message); | ||||||
|         vsprintf(logStr, message, args); |         vsprintf(logStr, message, args); | ||||||
|         va_end(args); |         va_end(args); | ||||||
|         _builtin_cope(LOG_FATAL, "Fatal", RED_B, logStr); |         snprintf( | ||||||
|  |             finalLogStr, LOG_BUFFER_SIZE * 2, "[%s:%d] %s", file, line, logStr); | ||||||
|  |         _builtin_cope(LOG_FATAL, "Fatal", RED_B, finalLogStr); | ||||||
|     } |     } | ||||||
| } | } | ||||||
|  |  | ||||||
| void log_error(const char *message, ...) { | void log_error(const char *file, int line, const char *message, ...) { | ||||||
|     if (G_LOGGER->level >= LOG_ERROR) { |     if (G_LOGGER->level >= LOG_ERROR) { | ||||||
|         char    logStr[LOG_BUFFER_SIZE]; |         char    logStr[LOG_BUFFER_SIZE]; | ||||||
|  |         char    finalLogStr[LOG_BUFFER_SIZE * 2]; | ||||||
|         va_list args; |         va_list args; | ||||||
|         va_start(args, message); |         va_start(args, message); | ||||||
|         vsprintf(logStr, message, args); |         vsprintf(logStr, message, args); | ||||||
|         va_end(args); |         va_end(args); | ||||||
|         _builtin_cope(LOG_ERROR, "Error", RED, logStr); |         snprintf( | ||||||
|  |             finalLogStr, LOG_BUFFER_SIZE * 2, "[%s:%d] %s", file, line, logStr); | ||||||
|  |         _builtin_cope(LOG_ERROR, "Error", RED, finalLogStr); | ||||||
|     } |     } | ||||||
| } | } | ||||||
|  |  | ||||||
| void log_warning(const char *message, ...) { | void log_warning(const char *file, int line, const char *message, ...) { | ||||||
|     if (G_LOGGER->level >= LOG_WARNING) { |     if (G_LOGGER->level >= LOG_WARNING) { | ||||||
|         char    logStr[LOG_BUFFER_SIZE]; |         char    logStr[LOG_BUFFER_SIZE]; | ||||||
|  |         char    finalLogStr[LOG_BUFFER_SIZE * 2]; | ||||||
|         va_list args; |         va_list args; | ||||||
|         va_start(args, message); |         va_start(args, message); | ||||||
|         vsprintf(logStr, message, args); |         vsprintf(logStr, message, args); | ||||||
|         va_end(args); |         va_end(args); | ||||||
|         _builtin_cope(LOG_WARNING, "Warning", YELLOW, logStr); |         snprintf( | ||||||
|  |             finalLogStr, LOG_BUFFER_SIZE * 2, "[%s:%d] %s", file, line, logStr); | ||||||
|  |         _builtin_cope(LOG_WARNING, "Warning", YELLOW, finalLogStr); | ||||||
|     } |     } | ||||||
| } | } | ||||||
|  |  | ||||||
| void log_info(const char *message, ...) { | void log_info(const char *file, int line, const char *message, ...) { | ||||||
|     if (G_LOGGER->level >= LOG_INFO) { |     if (G_LOGGER->level >= LOG_INFO) { | ||||||
|         char    logStr[LOG_BUFFER_SIZE]; |         char    logStr[LOG_BUFFER_SIZE]; | ||||||
|  |         char    finalLogStr[LOG_BUFFER_SIZE * 2]; | ||||||
|         va_list args; |         va_list args; | ||||||
|         va_start(args, message); |         va_start(args, message); | ||||||
|         vsprintf(logStr, message, args); |         vsprintf(logStr, message, args); | ||||||
|         va_end(args); |         va_end(args); | ||||||
|         _builtin_cope(LOG_INFO, "Info", GREEN, logStr); |         snprintf( | ||||||
|  |             finalLogStr, LOG_BUFFER_SIZE * 2, "[%s:%d] %s", file, line, logStr); | ||||||
|  |         _builtin_cope(LOG_INFO, "Info", GREEN, finalLogStr); | ||||||
|     } |     } | ||||||
| } | } | ||||||
|  |  | ||||||
| void log_debug(const char *message, ...) { | void log_debug(const char *file, int line, const char *message, ...) { | ||||||
|     if (G_LOGGER->level >= LOG_DEBUG) { |     if (G_LOGGER->level >= LOG_DEBUG) { | ||||||
|         char    logStr[LOG_BUFFER_SIZE]; |         char    logStr[LOG_BUFFER_SIZE]; | ||||||
|  |         char    finalLogStr[LOG_BUFFER_SIZE * 2]; | ||||||
|         va_list args; |         va_list args; | ||||||
|         va_start(args, message); |         va_start(args, message); | ||||||
|         vsprintf(logStr, message, args); |         vsprintf(logStr, message, args); | ||||||
|         va_end(args); |         va_end(args); | ||||||
|         _builtin_cope(LOG_DEBUG, "Debug", CYAN, logStr); |         snprintf( | ||||||
|  |             finalLogStr, LOG_BUFFER_SIZE * 2, "[%s:%d] %s", file, line, logStr); | ||||||
|  |         _builtin_cope(LOG_DEBUG, "Debug", CYAN, finalLogStr); | ||||||
|     } |     } | ||||||
| } | } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -8,11 +8,11 @@ | |||||||
| int main() { | int main() { | ||||||
|     Logger *logger = newDefaultLogger("testLogger", LOG_DEBUG); |     Logger *logger = newDefaultLogger("testLogger", 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"); | ||||||
|     log_fatal("This is an fatal message"); |     Log_fatal("This is an fatal message"); | ||||||
|     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"); | ||||||
|  |  | ||||||
|     char *test1[] = {"This", NULL}; |     char *test1[] = {"This", NULL}; | ||||||
|  |  | ||||||
| @@ -38,11 +38,11 @@ int main() { | |||||||
|     printf("filter added\n"); |     printf("filter added\n"); | ||||||
|     printf("\n"); |     printf("\n"); | ||||||
|  |  | ||||||
|     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"); | ||||||
|     log_fatal("This is an fatal message"); |     Log_fatal("This is an fatal message"); | ||||||
|     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(); |     destroyDefaultLogger(); | ||||||
|     return 0; |     return 0; | ||||||
|   | |||||||
| @@ -6,11 +6,11 @@ int main() { | |||||||
|     log_Handler *hander = loggingHandlerFile("test_log", 1024 * 1024 * 10); |     log_Handler *hander = loggingHandlerFile("test_log", 1024 * 1024 * 10); | ||||||
|     logger->addHandler(hander); |     logger->addHandler(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"); | ||||||
|     log_fatal("This is an fatal message"); |     Log_fatal("This is an fatal message"); | ||||||
|     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(); |     destroyDefaultLogger(); | ||||||
|     return 0; |     return 0; | ||||||
|   | |||||||
| @@ -3,11 +3,11 @@ | |||||||
| int main() { | int main() { | ||||||
|     Logger *logger = newDefaultLogger("testLogger", LOG_DEBUG); |     Logger *logger = newDefaultLogger("testLogger", 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"); | ||||||
|     log_fatal("This is an fatal message"); |     Log_fatal("This is an fatal message"); | ||||||
|     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(); |     destroyDefaultLogger(); | ||||||
|     return 0; |     return 0; | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user