This commit is contained in:
zogodo
2019-12-06 15:29:32 +08:00
parent 861bd842c3
commit c23c96f98e
2 changed files with 52 additions and 0 deletions

34
TC1/http_server/web_log.c Normal file
View File

@@ -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;
}

18
TC1/http_server/web_log.h Normal file
View File

@@ -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__) \