Add timestamp to logging
This commit is contained in:
parent
297c8f800e
commit
6ce73639ec
1 changed files with 43 additions and 24 deletions
67
src/log.h
67
src/log.h
|
|
@ -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_ */
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue