fix: logger
This commit is contained in:
parent
61e025343d
commit
db3bcaf7d1
28 changed files with 200 additions and 180 deletions
57
logger.c
57
logger.c
|
@ -1,10 +1,59 @@
|
|||
#include <stdio.h>
|
||||
#include <stdarg.h>
|
||||
#include <string.h>
|
||||
|
||||
#include <config.h>
|
||||
#include <logger.h>
|
||||
|
||||
char*
|
||||
logger_get_timestamp()
|
||||
#define COLOR_TRACE COLOR_GREEN
|
||||
#define COLOR_DEBUG COLOR_BLUE
|
||||
#define COLOR_INFO COLOR_CYAN
|
||||
#define COLOR_WARN COLOR_YELLOW
|
||||
#define COLOR_ERROR COLOR_RED
|
||||
#define COLOR_FATAL COLOR_MAGENTA
|
||||
|
||||
void
|
||||
logger_log(FILE *stream, log_level_t level, const char *filename, int line, const char *func, const char *msg, ...)
|
||||
{
|
||||
if(global_config.log_level < level)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
switch(level)
|
||||
{
|
||||
case LOG_LEVEL_TRACE:
|
||||
fprintf(stream, COLOR_TRACE "[TRACE] ");
|
||||
break;
|
||||
case LOG_LEVEL_DEBUG:
|
||||
fprintf(stream, COLOR_DEBUG "[DEBUG] ");
|
||||
break;
|
||||
case LOG_LEVEL_INFO:
|
||||
fprintf(stream, COLOR_INFO "[INFO ] ");
|
||||
break;
|
||||
case LOG_LEVEL_WARN:
|
||||
fprintf(stream, COLOR_WARN "[WARN ] ");
|
||||
break;
|
||||
case LOG_LEVEL_ERROR:
|
||||
fprintf(stream, COLOR_ERROR "[ERROR] ");
|
||||
break;
|
||||
case LOG_LEVEL_FATAL:
|
||||
fprintf(stream, COLOR_FATAL "[FATAL] ");
|
||||
break;
|
||||
default:
|
||||
fprintf(stream, COLOR_NONE "[LOG ] ");
|
||||
break;
|
||||
}
|
||||
|
||||
char timestamp_str[32];
|
||||
time_t rawtime;
|
||||
time(&rawtime);
|
||||
strftime(_LOGGER_TIMESTAMP, _LOGGER_TIMESTAMP_SIZE, "%Y-%m-%d %H:%M:%S", localtime(&rawtime));
|
||||
return _LOGGER_TIMESTAMP;
|
||||
strftime(timestamp_str, 32, "%Y-%m-%d %H:%M:%S", localtime(&rawtime));
|
||||
|
||||
fprintf(stream, "%s %s:%d:%s " COLOR_NONE, timestamp_str, filename, line, func);
|
||||
|
||||
va_list args;
|
||||
va_start(args, msg);
|
||||
vfprintf(stream, msg, args);
|
||||
va_end(args);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue