From 86ed958b7fd25d668f426da532a2a5c0a78bc9ef Mon Sep 17 00:00:00 2001 From: Heikki Levanto Date: Tue, 2 Nov 2004 12:55:04 +0000 Subject: [PATCH] Added a new log flag LOG_FLUSH that forces flushing the log after every write. Yaz used to do this unconditionally, now it only does if LOG_FLUSH or LOG_DEBUG are set in the log level. Presumably speeds up stuff that writes many log entries... --- include/yaz/log.h | 25 +++++++++++++------------ src/log.c | 5 +++-- 2 files changed, 16 insertions(+), 14 deletions(-) diff --git a/include/yaz/log.h b/include/yaz/log.h index d6b0963..e778932 100644 --- a/include/yaz/log.h +++ b/include/yaz/log.h @@ -23,7 +23,7 @@ * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE * OF THIS SOFTWARE. * - * $Id: log.h,v 1.14 2004-11-02 11:37:21 heikki Exp $ + * $Id: log.h,v 1.15 2004-11-02 12:55:04 heikki Exp $ */ /** @@ -40,17 +40,18 @@ YAZ_BEGIN_CDECL -#define LOG_FATAL 0x0001 -#define LOG_DEBUG 0x0002 -#define LOG_WARN 0x0004 -#define LOG_LOG 0x0008 -#define LOG_ERRNO 0x0010 /* append strerror to message */ -#define LOG_FILE 0x0020 -#define LOG_APP 0x0040 /* For application level events such as new-connection */ -#define LOG_MALLOC 0x0080 /* debugging mallocs */ -#define LOG_NOTIME 0x0100 /* do not output date and time */ -#define LOG_APP2 0x0200 /* For application-level events, such as api calls */ -#define LOG_APP3 0x0400 /* For more application-level events */ +#define LOG_FATAL 0x00000001 +#define LOG_DEBUG 0x00000002 +#define LOG_WARN 0x00000004 +#define LOG_LOG 0x00000008 +#define LOG_ERRNO 0x00000010 /* append strerror to message */ +#define LOG_FILE 0x00000020 +#define LOG_APP 0x00000040 /* Application level events (new-connection) */ +#define LOG_MALLOC 0x00000080 /* debugging mallocs */ +#define LOG_NOTIME 0x00000100 /* do not output date and time */ +#define LOG_APP2 0x00000200 /* Application-level events, such as api calls */ +#define LOG_APP3 0x00000400 /* For more application-level events */ +#define LOG_FLUSH 0x00000800 /* Flush log after every write (DEBUG does too) */ #define LOG_ALL (0xffff&~LOG_MALLOC&~LOG_NOTIME) diff --git a/src/log.c b/src/log.c index 134ce98..7e03daa 100644 --- a/src/log.c +++ b/src/log.c @@ -2,7 +2,7 @@ * Copyright (c) 1995-2004, Index Data * See the file LICENSE for details. * - * $Id: log.c,v 1.3 2004-11-02 11:37:21 heikki Exp $ + * $Id: log.c,v 1.4 2004-11-02 12:55:04 heikki Exp $ */ /** @@ -208,7 +208,8 @@ void yaz_log(int level, const char *fmt, ...) tbuf[TIMEFORMAT_LEN-1]='\0'; fprintf(l_file, "%s %s%s %s%s\n", tbuf, l_prefix, flags, l_prefix2, buf); - fflush(l_file); + if (l_level & (LOG_FLUSH|LOG_DEBUG) ) + fflush(l_file); if (end_hook_func) (*end_hook_func)(o_level, buf, end_hook_info); } -- 1.7.10.4