Add timestamp to logging

This commit is contained in:
Aaron Cook 2026-05-24 22:51:16 -05:00
commit 6ce73639ec

View file

@ -2,6 +2,7 @@
#define _PAWN_LSP_LOG_H_ #define _PAWN_LSP_LOG_H_
#include <stdio.h> #include <stdio.h>
#include <time.h>
#define COL_BLU "\e[38;5;12m\e[1m" #define COL_BLU "\e[38;5;12m\e[1m"
#define COL_GRE "\e[38;5;82m\e[1m" #define COL_GRE "\e[38;5;82m\e[1m"
@ -14,34 +15,52 @@
extern FILE *logger; extern FILE *logger;
#define log_info(fmt, ...) do { \ #define log_info(fmt, ...) do { \
const char *__fmt = "[" COL_CYA "INFO " COL_DONE " | %s:%d] " fmt; \ struct timespec __now = {0}; \
fprintf(stderr, __fmt, __FILE__, __LINE__, ##__VA_ARGS__); \ double __snow; \
fflush(stderr); \ const char *__fmt = "[" COL_CYA "INFO " COL_DONE " |%.3f| %s:%d|> " fmt; \
if (logger) { \ \
fprintf(logger, __fmt, __FILE__, __LINE__, ##__VA_ARGS__); \ clock_gettime(CLOCK_REALTIME, &__now); \
fflush(logger); \ __snow = (double)__now.tv_sec + ((double)__now.tv_nsec / 1000000000.0f); \
} \ \
fprintf(stderr, __fmt, __snow, __FILE__, __LINE__, ##__VA_ARGS__); \
fflush(stderr); \
if (logger) { \
fprintf(logger, __fmt, __FILE__, __LINE__, ##__VA_ARGS__); \
fflush(logger); \
} \
} while (0) } while (0)
#define log_warn(fmt, ...) do { \ #define log_warn(fmt, ...) do { \
const char *__fmt = "[" COL_YEL "WARN " COL_DONE " | %s:%d] " fmt; \ struct timespec __now = {0}; \
fprintf(stderr, __fmt, __FILE__, __LINE__, ##__VA_ARGS__); \ double __snow; \
fflush(stderr); \ const char *__fmt = "[" COL_YEL "WARN " COL_DONE " |%.3f| %s:%d|> " fmt; \
if (logger) { \ \
fprintf(logger, __fmt, __FILE__, __LINE__, ##__VA_ARGS__); \ clock_gettime(CLOCK_REALTIME, &__now); \
fflush(logger); \ __snow = (double)__now.tv_sec + ((double)__now.tv_nsec / 1000000000.0f); \
} \ \
fprintf(stderr, __fmt, __snow, __FILE__, __LINE__, ##__VA_ARGS__); \
fflush(stderr); \
if (logger) { \
fprintf(logger, __fmt, __FILE__, __LINE__, ##__VA_ARGS__); \
fflush(logger); \
} \
} while (0) } while (0)
#define log_error(fmt, ...) do { \ #define log_error(fmt, ...) do { \
const char *__fmt = "[" COL_ORA "ERROR" COL_DONE " | %s:%d] " fmt; \ struct timespec __now = {0}; \
fprintf(stderr, __fmt, __FILE__, __LINE__, ##__VA_ARGS__); \ double __snow; \
fflush(stderr); \ const char *__fmt = "[" COL_ORA "ERROR" COL_DONE " |%.3f| %s:%d|> " fmt; \
if (logger) { \ \
fprintf(logger, __fmt, __FILE__, __LINE__, ##__VA_ARGS__); \ clock_gettime(CLOCK_REALTIME, &__now); \
fflush(logger); \ __snow = (double)__now.tv_sec + ((double)__now.tv_nsec / 1000000000.0f); \
} \ \
fprintf(stderr, __fmt, __snow, __FILE__, __LINE__, ##__VA_ARGS__); \
fflush(stderr); \
if (logger) { \
fprintf(logger, __fmt, __FILE__, __LINE__, ##__VA_ARGS__); \
fflush(logger); \
} \
} while (0) } while (0)
#endif /* _PAWN_LSP_LOG_H_ */ #endif /* _PAWN_LSP_LOG_H_ */