X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=src%2Flog.c;h=54753f0b8a44f1f2d453f79a45f89976eae152fd;hb=e497fb7edee04454e0f08fd1ed975fa6966341ac;hp=e8aa1a83e5e36865c6bf345a2d5b7a57da3cfb4f;hpb=905df6869e5ad8ab9f34590cce771fe50c444473;p=yaz-moved-to-github.git diff --git a/src/log.c b/src/log.c index e8aa1a8..54753f0 100644 --- a/src/log.c +++ b/src/log.c @@ -1,8 +1,8 @@ /* - * Copyright (c) 1995-2004, Index Data + * Copyright (C) 1995-2005, Index Data ApS * See the file LICENSE for details. * - * $Id: log.c,v 1.19 2004-12-30 00:11:00 adam Exp $ + * $Id: log.c,v 1.24 2005-05-18 12:30:00 adam Exp $ */ /** @@ -83,10 +83,10 @@ static struct { { YLOG_LOG, "log" }, { YLOG_ERRNO, ""}, { YLOG_MALLOC, "malloc"}, - /* { YLOG_APP, "app" }, */ + { YLOG_APP, "app" }, { YLOG_NOTIME, "notime" }, - /* { YLOG_APP2, "app2" }, */ - /* { YLOG_APP3, "app3" }, */ + { YLOG_APP2, "app2" }, + { YLOG_APP3, "app3" }, { YLOG_ALL, "all" }, { YLOG_FLUSH, "flush" }, { YLOG_LOGLVL, "loglevel" }, @@ -136,7 +136,13 @@ void yaz_log_reopen(void) if (!*l_fname) new_file = stderr; else if (!(new_file = fopen(l_fname, "a"))) + { + new_file=l_file; + l_file=stderr; /* just to be sure we don't rotate logs and recurse */ + yaz_log(YLOG_WARN|YLOG_ERRNO,"Could not open log file '%s'",l_fname); + l_file=new_file; /* restore to old value, probably stderr as well */ return; + } if (l_file != stderr) { fclose (l_file); @@ -168,6 +174,8 @@ static void rotate_log() void yaz_log_init_level (int level) { + if (!mutex_init_flag) + init_mutex(); if ( (l_level & YLOG_FLUSH) != (level & YLOG_FLUSH) ) { l_level = level; @@ -355,6 +363,8 @@ static char *clean_name(const char *name, int len, char *namebuf, int buflen) static int define_module_bit(const char *name) { int i; + if (!mutex_init_flag) + init_mutex(); for (i = 0; mask_names[i].name; i++) ; if ( (i>=MAX_MASK_NAMES) || (next_log_bit >= 1<<31 )) @@ -375,6 +385,8 @@ int yaz_log_module_level(const char *name) int i; char clean[255]; char *n = clean_name(name, strlen(name), clean, sizeof(clean)); + if (!mutex_init_flag) + init_mutex(); for (i = 0; mask_names[i].name; i++) if (0==strcmp(n,mask_names[i].name)) {