Files
LLog/include/LLog.h

69 lines
1.3 KiB
C

#ifndef LLog_H
#define LLog_H
#include "time.h"
#include <stdarg.h>
#include <stdio.h>
#ifndef max_string_len
#define max_string_len 1024
#endif
#define LLog_Author "Lucielle <luci@git.lunarware.tech>"
#define LLog_Repo "https://git.lunarware.tech/lucielle/LLog"
#define LLog_Version "1.0.0"
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