X-Git-Url: https://ruderich.org/simon/gitweb/?a=blobdiff_plain;f=src%2Flog.c;h=b3c2083b7f822ab2cdb896f7552f144cd2439806;hb=d87efa4a7a6285603950f5780ef57a72b651c8e9;hp=e00a08d8aa77f9a2914ce39fee3821c97bd87e97;hpb=a64101800c79c852cc4ab9d445c35aad0a6457eb;p=tlsproxy%2Ftlsproxy.git diff --git a/src/log.c b/src/log.c index e00a08d..b3c2083 100644 --- a/src/log.c +++ b/src/log.c @@ -20,10 +20,8 @@ #include "tlsproxy.h" #include "log.h" -/* va_*() */ -#include -/* pthread_self() */ #include +#include void log_message(int level, const char *file, int line, const char *format, ...) { @@ -37,7 +35,7 @@ void log_message(int level, const char *file, int line, const char *format, ...) switch (level) { case LOG_ERROR_LEVEL: level_string = "ERROR"; break; case LOG_WARNING_LEVEL: level_string = "WARN "; break; - case LOG_DEBUG_LEVEL: level_string = "DEBUG"; break; + case LOG_DEBUG1_LEVEL: level_string = "DEBUG"; break; default: level_string = "UNKNOWN"; } @@ -47,17 +45,17 @@ void log_message(int level, const char *file, int line, const char *format, ...) (void)line; #endif - va_start(ap, format); - fprintf(stdout, -#ifdef DEBUG - "%-12s:%-3d " -#endif - "[%s] [%d] ", + /* Prevent another thread from interrupting the printfs(). */ + flockfile(stderr); + #ifdef DEBUG - file, line, + fprintf(stderr, "%-12s:%-3d ", file, line); #endif - level_string, (int)pthread_self()); - vfprintf(stdout, format, ap); - fprintf(stdout, "\n"); + fprintf(stderr, "[%s] [%d] ", level_string, (int)pthread_self()); + va_start(ap, format); + vfprintf(stderr, format, ap); va_end(ap); + fprintf(stderr, "\n"); + + funlockfile(stderr); }