Program Listing for File log.cpp
↰ Return to documentation for file (log.cpp
)
#include <ctime>
#include <unistd.h>
#include <stdarg.h>
#include "log.hpp"
static struct {
int verbose;
} log_config;
void log_init(int verbose)
{
log_config.verbose = verbose;
}
void _log_dump(const char* level, const char* filename, unsigned line, const char* functionname, int tid, const char *format, ...)
{
va_list args;
va_start(args, format);
char timestamp[72];
time_t ltime;
ltime=time(NULL);
struct tm *tm;
tm=localtime(<ime);
sprintf(timestamp,"%04d-%02d-%02d %02d:%02d:%02d", tm->tm_year+1900, tm->tm_mon +1,
tm->tm_mday, tm->tm_hour, tm->tm_min, tm->tm_sec);
fprintf(stderr, "%s [%s] ", timestamp, level);
char msg[1024];
vsnprintf(msg, 1024, format, args);
fputs(msg, stderr);
fputs("\n", stderr);
fflush(stderr);
va_end(args);
}
void _log(const char* level, const char* filename, unsigned line, const char* functionname, int tid, const char *format, ...)
{
if (!log_config.verbose && !strcmp("DEBUG", level)) return;
va_list args;
va_start(args, format);
char timestamp[72];
time_t ltime;
ltime=time(NULL);
struct tm *tm;
tm=localtime(<ime);
sprintf(timestamp,"%04d-%02d-%02d %02d:%02d:%02d", tm->tm_year+1900, tm->tm_mon +1,
tm->tm_mday, tm->tm_hour, tm->tm_min, tm->tm_sec);
printf("%s [%s] ", timestamp, level);
char msg[1024];
vsnprintf(msg, 1024, format, args);
puts(msg);
log_flush();
va_end(args);
}
void log_flush()
{
fflush(stdout);
}