From 00394f239e79cbfe0af36eb11c02290ac76e56e2 Mon Sep 17 00:00:00 2001
From: guowenxue <guowenxue@gmail.com>
Date: Thu, 22 Aug 2024 17:50:02 +0800
Subject: [PATCH] move api to modules
---
booster/logger.h | 125 ++++++++++++++---------------------------
1 files changed, 44 insertions(+), 81 deletions(-)
diff --git a/booster/logger.h b/booster/logger.h
index 786bdf8..ef8569e 100644
--- a/booster/logger.h
+++ b/booster/logger.h
@@ -1,105 +1,68 @@
-/********************************************************************************
- * Copyright: (C) 2020 LingYun IoT System Studio
+/*********************************************************************************
+ * Copyright: (C) 2023 LingYun IoT System Studio.
* All rights reserved.
*
* Filename: logger.h
- * Description: This file is the linux infrastructural logger system library
+ * Description: This file is common logger API functions
*
- * Version: 1.0.0(08/08/2020~)
+ * Version: 1.0.0(11/08/23)
* Author: Guo Wenxue <guowenxue@gmail.com>
- * ChangeLog: 1, Release initial version on "08/08/2020 05:16:56 PM"
- *
+ * ChangeLog: 1, Release initial version on "11/08/23 16:18:43"
+ *
********************************************************************************/
#ifndef _LOGGER_H_
#define _LOGGER_H_
-#include <stdarg.h>
#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <signal.h>
-#include <time.h>
-#include <errno.h>
+#include <stdarg.h>
-#include <sys/types.h>
-#include <sys/time.h>
+#define LOG_VERSION "v0.1"
-#define LOG_VERSION_STR "1.0.0"
-
-#ifndef FILENAME_LEN
-#define FILENAME_LEN 64
-#endif
-
-#define LOG_STDERR "stderr" /* Debug mode log file is console */
-
-#define LOG_ROLLBACK_SIZE 512 /* Default rollback log size */
-#define LOG_ROLLBACK_NONE 0 /* Set rollback size to 0 will not rollback */
-
-#define DEFAULT_TIME_FORMAT "%Y-%m-%d %H:%M:%S"
-#define MAX_LOG_MESSAGE_LEN 0x1000
-
-//#define DUMPLICATE_OUTPUT /* Log to file and printf on console */
-
-enum
-{
- LOG_LEVEL_DISB = 0, /* Disable "Debug" */
- LOG_LEVEL_ERROR, /* Debug Level "ERROR" */
- LOG_LEVEL_WARN, /* Debug Level "warnning" */
- LOG_LEVEL_NRML, /* Debug Level "Normal" */
- LOG_LEVEL_DEBUG, /* Debug Level "Debug" */
- LOG_LEVEL_INFO, /* Debug Level "Information" */
- LOG_LEVEL_MAX,
+/* log level */
+enum {
+ LOG_LEVEL_ERROR,
+ LOG_LEVEL_WARN,
+ LOG_LEVEL_INFO,
+ LOG_LEVEL_DEBUG,
+ LOG_LEVEL_TRACE,
+ LOG_LEVEL_MAX
};
+enum {
+ LOG_LOCK_DISABLE, /* disable lock */
+ LOG_LOCK_ENABLE, /* enable lock */
+};
+
+#define ROLLBACK_NONE 0
+
+/* description: Initial the logger system
+ * arguments :
+ * $fname: logger file name, NULL/"console"/"stderr" will log to console
+ * $level: logger level above;
+ * $size : logger file max size in KiB
+ * $lock : thread lock enable or not
+ * return : <0: Failed ==0: Sucessfully
+ */
+int log_open(char *fname, int level, int size, int lock);
-/* logger->flag definition */
-#define FLAG_LOGGER_LEVEL_OPT 1<<0 /* The log level is sepcified by the command option */
+/* description: Terminate the logger system */
+void log_close(void);
-#define FLAG_LOGGER_CONSOLE 1<<1
-#define FLAG_LOGGER_FILE 0<<1
-typedef struct logger_s
-{
- unsigned char flag;
- char file[FILENAME_LEN];
- int level;
- int size;
+/* description: log message into log file. Don't call this function directly. */
+void _log_write(int level, const char *file, int line, const char *fmt, ...);
- FILE *fp;
-} logger_t;
-extern char *log_str[];
+/* description: dump a buffer in hex to logger file */
+void log_dump(int level, const char *prompt, char *buf, size_t len);
-/* log_size unit is KB */
-extern int log_open(logger_t *logger, char *filename, int level, int log_size);
-extern int log_reopen(void);
-extern void log_close(void);
+/* function: log message into logger file with different log level */
+#define log_trace(...) _log_write(LOG_LEVEL_TRACE, __FILE__, __LINE__, __VA_ARGS__)
+#define log_debug(...) _log_write(LOG_LEVEL_DEBUG, __FILE__, __LINE__, __VA_ARGS__)
+#define log_info(...) _log_write(LOG_LEVEL_INFO, __FILE__, __LINE__, __VA_ARGS__)
+#define log_warn(...) _log_write(LOG_LEVEL_WARN, __FILE__, __LINE__, __VA_ARGS__)
+#define log_error(...) _log_write(LOG_LEVEL_ERROR, __FILE__, __LINE__, __VA_ARGS__)
-/* lowlvel API */
-extern void logger_raw(const char *fmt, ...);
-extern void logger_min(int level, char *fmt, ...);
-extern void logger_line(int level, char *file, int line, char *fmt, ...);
-extern void logger_str(int level, const char *msg);
-extern void logger_dump(int level, char *buf, int len);
-
-#define LOG_FILE_LINE /* Log the file and line */
-
-#ifdef LOG_FILE_LINE
-#define log_info(fmt, ...) logger_line(LOG_LEVEL_INFO, __FILE__, __LINE__, fmt, ##__VA_ARGS__)
-#define log_dbg(fmt, ...) logger_line(LOG_LEVEL_DEBUG, __FILE__, __LINE__, fmt, ##__VA_ARGS__)
-#define log_nrml(fmt, ...) logger_line(LOG_LEVEL_NRML, __FILE__, __LINE__, fmt, ##__VA_ARGS__)
-#define log_warn(fmt, ...) logger_line(LOG_LEVEL_WARN, __FILE__, __LINE__, fmt, ##__VA_ARGS__)
-#define log_err(fmt, ...) logger_line(LOG_LEVEL_ERROR, __FILE__, __LINE__, fmt, ##__VA_ARGS__)
-#else
-#define log_info(fmt, ...) logger_min(LOG_LEVEL_INFO, fmt, ##__VA_ARGS__)
-#define log_dbg(fmt, ...) logger_min(LOG_LEVEL_DEBUG, fmt, ##__VA_ARGS__)
-#define log_nrml(fmt, ...) logger_min(LOG_LEVEL_NRML, fmt, ##__VA_ARGS__)
-#define log_warn(fmt, ...) logger_min(LOG_LEVEL_WARN, fmt, ##__VA_ARGS__)
-#define log_err(fmt, ...) logger_min(LOG_LEVEL_ERROR, fmt, ##__VA_ARGS__)
#endif
-
-#endif /* ----- #ifndef _LOGGER_H_ ----- */
-
--
Gitblit v1.9.1