Added a new log flag LOG_FLUSH that forces flushing the log after every
[yaz-moved-to-github.git] / include / yaz / log.h
index 32f0ea2..e778932 100644 (file)
  * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
  * OF THIS SOFTWARE.
  *
- * $Id: log.h,v 1.10 2003-05-22 13:15:07 heikki Exp $
+ * $Id: log.h,v 1.15 2004-11-02 12:55:04 heikki Exp $
+ */
+
+/**
+ * \file log.h
+ * \brief Header for logging utility
  */
 
 #ifndef LOG_H
 
 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   0x0200     /* 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)
 
@@ -58,6 +64,14 @@ YAZ_EXPORT void yaz_log_init_file (const char *fname);
 YAZ_EXPORT void yaz_log_init_level (int level);
 YAZ_EXPORT void yaz_log_init_prefix (const char *prefix);
 YAZ_EXPORT void yaz_log_init_prefix2 (const char *prefix);
+/** 
+ * yaz_log_time_format sets the format of the timestamp. See man 3 strftime 
+ * Calling with "old" sets to the old format "11:55:06-02/11"
+ * Calling with NULL or "" sets to the new format "20041102-115719"
+ * If not called at all, the old format is used, for backward compatibility
+ *
+ * */
+YAZ_EXPORT void yaz_log_time_format(const char *fmt);
 
 YAZ_EXPORT void yaz_log(int level, const char *fmt, ...)
 #ifdef __GNUC__
@@ -73,6 +87,7 @@ YAZ_EXPORT void log_event_start (void (*func)(int level, const char *msg, void *
 YAZ_EXPORT void log_event_end (void (*func)(int level, const char *msg, void *info),
        void *info);
 
+YAZ_EXPORT void yaz_log_reopen(void);
 YAZ_END_CDECL
 
 #endif