#ifndef LLog_H #define LLog_H #include "time.h" #include #include #ifndef max_string_len #define max_string_len 1024 #endif #define LLog_Author "Lucielle " #define LLog_Repo "https://git.lunarware.tech/lucielle/LLog" #define LLog_Version "1.0.1" 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; int next; } 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); void pause_timer(Logger* logger, int timer_id); void resume_timer(Logger* logger, int timer_id); double get_elapsed_time(Logger* logger, int timer_id); lLogString* lLogString_new(const char* fmt, ...); int lLog(Logger* logger, enum lLogLevel LOG_LEVEL, lLogString* MESSAGE); #endif