log.h
#include#include #include #include typedef long long ll; typedef struct log { ll timeStamp; char prefix[1024]; char message[1024]; void (*Println)(const char *message); } Log; char destination[1024]; char prefix[1024]; char* timeStamp() { static char len[20] = {0}; time_t timep; time(&timep); struct tm *p = gmtime(&timep); snprintf(len, 20, "%d-%d-%d %d:%d:%d ", 1900 + p->tm_year, 1 + p->tm_mon, p->tm_mday, 8 + p->tm_hour, p->tm_min, p->tm_sec); return len; } void Println(const char _message[]) { char message[1024]; char tfln[2] = "n"; strcat(message, timeStamp()); strcat(message, prefix); strcat(message, _message); strcat(message, tfln); FILE *fp = fopen(destination, "a+"); fwrite(message, 1, strlen(message), fp); fclose(fp); } Log Log_Init(char _destination[1024], char _prefix[]) { strcpy(prefix, _prefix); strcpy(destination, _destination); static Log log; log.Println = Println; return log; }
main.c
#include "log.h"
int main() {
Log log = Log_Init("./data.log", "Logger ");
log.Println("hello world");
}
运行结果



