From c23c96f98e42d6067b53e029176515646af5641f Mon Sep 17 00:00:00 2001 From: zogodo <742782908@qq.com> Date: Fri, 6 Dec 2019 15:29:32 +0800 Subject: [PATCH] web_log --- TC1/http_server/web_log.c | 34 ++++++++++++++++++++++++++++++++++ TC1/http_server/web_log.h | 18 ++++++++++++++++++ 2 files changed, 52 insertions(+) create mode 100644 TC1/http_server/web_log.c create mode 100644 TC1/http_server/web_log.h diff --git a/TC1/http_server/web_log.c b/TC1/http_server/web_log.c new file mode 100644 index 0000000..9c41e2c --- /dev/null +++ b/TC1/http_server/web_log.c @@ -0,0 +1,34 @@ +#include"web_log.h" + +LogRecord log_record = { 1,{ 0 } }; +char log_record_str[LOG_NUM*LOG_LEN] = { 0 }; + +void SetLogRecord(LogRecord* lr, char* log) +{ + if (strlen(log) > LOG_LEN) + { + log[LOG_LEN-1] = 0; + } + char** log = &lr->logs[(++lr->idx)% LOG_NUM]; + if (*log) + { + free(*log); + } + *log = lr; +} + +char* GetLogRecord(int idx) +{ + if (idx > log_record.idx) return ""; + + int i = idx > 0 ? idx : (log_record.idx - LOG_NUM + 1); + i = i < 0 ? 0 : i; + char* tmp = log_record_str; + for (; i <= log_record.idx; i++) + { + sprintf(tmp, "%s\n", log_record.logs[i%LOG_NUM]); + tmp += strlen(tmp); + } + return log_record_str; +} + diff --git a/TC1/http_server/web_log.h b/TC1/http_server/web_log.h new file mode 100644 index 0000000..385a8bb --- /dev/null +++ b/TC1/http_server/web_log.h @@ -0,0 +1,18 @@ + +#define LOG_NUM 100 +#define LOG_LEN 128 +typedef struct +{ + int idx; + char* logs[LOG_NUM]; +} LogRecord; + +void SetLogRecord(LogRecord* lr, char* log); +char* GetLogRecord(int idx); + +#define os_log(format, ...) \ + char* log = malloc(sizeof(char)*LOG_LEN); \ + snprintf(log, LOG_LEN, format, ##__VA_ARGS__); \ + SetLogRecord(log_record, log); \ + custom_log("WIFI", format, ##__VA_ARGS__) \ +