Added a new log flag LOG_FLUSH that forces flushing the log after every
authorHeikki Levanto <heikki@indexdata.dk>
Tue, 2 Nov 2004 12:55:04 +0000 (12:55 +0000)
committerHeikki Levanto <heikki@indexdata.dk>
Tue, 2 Nov 2004 12:55:04 +0000 (12:55 +0000)
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
src/log.c

index d6b0963..e778932 100644 (file)
@@ -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 $
  */
 
 /**
 
 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)
 
index 134ce98..7e03daa 100644 (file)
--- 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);
 }