#ifndef LLog_H #define LLog_H #include "time.h" #include #include #ifndef max_string_len #define max_string_len 1024 #endif typedef struct { char *buf; size_t len; } lLogString; enum lLogLevel { lINFO, lWARNING, lERROR, lDEBUG }; typedef struct { time_t start; time_t end; } lTimespan; typedef struct { lTimespan time; } lTimer; typedef struct { size_t count; size_t capacity; lTimer* items; } timer_array; int timer_array_append(timer_array* array, lTimer timer); typedef struct { size_t count; size_t capacity; lLogString** items; } lLogString_array; int lLogString_array_append(lLogString_array* array, lLogString* string); typedef struct { FILE* log_file; timer_array timers; int historyEnabled; int logFileEnabled; lLogString_array history; } Logger; Logger* Logger_new(lLogString* logfolder, int history_enabled); int create_timer(Logger* logger); void start_timer(Logger* logger, int timer_id); void stop_timer(Logger* logger, int timer_id); lLogString* lLogString_new(const char* fmt, ...); int lLog(Logger* logger, enum lLogLevel LOG_LEVEL, lLogString* MESSAGE); #endif