static unsigned int next_log_bit = YLOG_LAST_BIT<<1; /* first dynamic bit */
+static int yaz_log_reopen_flag = 0;
+
static YAZ_MUTEX log_mutex = 0;
+static void yaz_log_open(void);
+
void yaz_log_lock(void)
{
yaz_mutex_enter(log_mutex);
yaz_log_info.type = use_none; /* NULL name; use no file at all */
yaz_log_info.l_fname[0] = '\0';
}
- yaz_log_reopen();
+ yaz_log_open();
}
static void rotate_log(const char *cur_fname)
if ( (l_level & YLOG_FLUSH) != (level & YLOG_FLUSH) )
{
l_level = level;
- yaz_log_reopen(); /* make sure we set buffering right */
+ yaz_log_open(); /* make sure we set buffering right */
}
else
l_level = level;
if (yaz_log_info.type != use_file)
return;
+ if (yaz_log_reopen_flag)
+ {
+ force = 1;
+ yaz_log_reopen_flag = 0;
+ }
if (*yaz_log_info.l_fname)
{
strftime(new_filename, sizeof(new_filename)-1, yaz_log_info.l_fname,
yaz_log_unlock();
}
-
void yaz_log_reopen()
{
+ yaz_log_reopen_flag = 1;
+}
+
+static void yaz_log_open()
+{
yaz_log_do_reopen("a");
}