* LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
* OF THIS SOFTWARE.
*
- * $Id: log.h,v 1.35 2006-03-21 12:54:02 adam Exp $
+ * $Id: log.h,v 1.36 2006-03-21 13:58:50 adam Exp $
*/
/**
YAZ_EXPORT void yaz_log_reopen(void);
+YAZ_EXPORT void log_event_start(void (*func)(int level, const char *msg,
+ void *info), void *info);
+
+YAZ_EXPORT void log_event_end(void (*func)(int level, const char *msg,
+ void *info), void *info);
+
#if YAZ_USE_NEW_LOG
#else
* Copyright (C) 1995-2005, Index Data ApS
* See the file LICENSE for details.
*
- * $Id: log.c,v 1.32 2006-03-21 12:54:02 adam Exp $
+ * $Id: log.c,v 1.33 2006-03-21 13:58:50 adam Exp $
*/
/**
static enum l_file_type yaz_file_type = use_stderr;
static FILE *yaz_global_log_file = NULL;
+static void (*start_hook_func)(int, const char *, void *) = NULL;
+static void *start_hook_info;
+
+static void (*end_hook_func)(int, const char *, void *) = NULL;
+static void *end_hook_info;
+
+static void (*hook_func)(int, const char *, void *) = NULL;
+static void *hook_info;
+
static char l_prefix[512] = "";
static char l_prefix2[512] = "";
static char l_fname[512] = "";
l_max_size = mx;
}
-static void (*hook_func)(int, const char *, void *) = NULL;
-static void *hook_info;
-
void yaz_log_set_handler(void (*func)(int, const char *, void *), void *info)
{
hook_func = func;
hook_info = info;
}
+void log_event_start(void (*func)(int, const char *, void *), void *info)
+{
+ start_hook_func = func;
+ start_hook_info = info;
+}
+
+void log_event_end(void (*func)(int, const char *, void *), void *info)
+{
+ end_hook_func = func;
+ end_hook_info = info;
+}
+
static void yaz_log_open_check(struct tm *tm, int force)
{
char new_filename[512];
strcat(buf, "]");
}
va_end (ap);
+ if (start_hook_func)
+ (*start_hook_func)(o_level, buf, start_hook_info);
if (hook_func)
(*hook_func)(o_level, buf, hook_info);
-
file = yaz_log_file();
if (file)
yaz_log_to_file(level, file, buf);
+ if (end_hook_func)
+ (*end_hook_func)(o_level, buf, end_hook_info);
}
void yaz_log_time_format(const char *fmt)