34 lines
627 B
C
34 lines
627 B
C
|
#include "fpga_global.h"
|
||
|
#include <stdio.h>
|
||
|
#include <stdarg.h>
|
||
|
#include <string.h>
|
||
|
|
||
|
static int current_log_level = 100;
|
||
|
|
||
|
static const char *ll_string[] = {
|
||
|
"\x1B[34m[D] ",
|
||
|
"\x1B[32m[I] ",
|
||
|
"\x1B[33m[W] ",
|
||
|
"\x1B[31m[E] ",
|
||
|
"\x1B[31m\x1B[1m[X] ",
|
||
|
"[?] "
|
||
|
};
|
||
|
|
||
|
enum log_level report(enum log_level log_level, const char *format, ...)
|
||
|
{
|
||
|
va_list vargs;
|
||
|
|
||
|
if (log_level > LL_COUNT)
|
||
|
log_level = LL_COUNT;
|
||
|
|
||
|
if (log_level <= current_log_level) {
|
||
|
va_start(vargs, format);
|
||
|
fprintf(stderr, "%s", ll_string[log_level]);
|
||
|
vfprintf(stderr, format, vargs);
|
||
|
fprintf(stderr, "\x1B[0m\n");
|
||
|
va_end(vargs);
|
||
|
}
|
||
|
|
||
|
return log_level;
|
||
|
}
|