X-Git-Url: https://ruderich.org/simon/gitweb/?a=blobdiff_plain;f=src%2Flog.c;h=a791450da0a4bba518ca3a7969e05b786d9cf738;hb=b7ce41b809a3b3533d398c0da8fd9787c149434c;hp=4a3407b0d2f96e590d7685b083e503731b6742bc;hpb=948878cf1d882adef61f9bd7c26473089f3032ad;p=tlsproxy%2Ftlsproxy.git diff --git a/src/log.c b/src/log.c index 4a3407b..a791450 100644 --- a/src/log.c +++ b/src/log.c @@ -1,7 +1,7 @@ /* * Log related functions/defines. * - * Copyright (C) 2011-2012 Simon Ruderich + * Copyright (C) 2011-2013 Simon Ruderich * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -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, ...) { @@ -41,15 +39,28 @@ void log_message(int level, const char *file, int line, const char *format, ...) default: level_string = "UNKNOWN"; } - va_start(ap, format); -#ifdef DEBUG - fprintf(stdout, "%-12s:%-3d ", file, line); -#else +#ifndef DEBUG + /* Prevent warnings. */ (void)file; (void)line; #endif - fprintf(stdout, "[%s] [%d] ", level_string, (int)pthread_self()); - vfprintf(stdout, format, ap); - fprintf(stdout, "\n"); + + /* Prevent another thread from interrupting the two printfs(). */ + flockfile(stderr); + + fprintf(stderr, +#ifdef DEBUG + "%-12s:%-3d " +#endif + "[%s] [%d] ", +#ifdef DEBUG + file, line, +#endif + level_string, (int)pthread_self()); + va_start(ap, format); + vfprintf(stderr, format, ap); va_end(ap); + fprintf(stderr, "\n"); + + funlockfile(stderr); }