73 lines
1.5 KiB
C
73 lines
1.5 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;
|
|
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 |