X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=util%2Flog.c;h=90a2c5ba97af8dae2097b713d13550e22c0b88aa;hb=6588b4176290d756fa422b9b93e297ddba3e22d8;hp=5056d011a8049bb205ba89b51d7a77d7c53607f9;hpb=9a6ef6ade0e32716585b5dd5388a60285ea9d408;p=yaz-moved-to-github.git diff --git a/util/log.c b/util/log.c index 5056d01..90a2c5b 100644 --- a/util/log.c +++ b/util/log.c @@ -2,7 +2,7 @@ * Copyright (c) 1995-2003, Index Data * See the file LICENSE for details. * - * $Id: log.c,v 1.34 2003-02-07 14:39:00 heikki Exp $ + * $Id: log.c,v 1.39 2003-10-09 15:51:36 adam Exp $ */ #if HAVE_CONFIG_H @@ -40,6 +40,7 @@ static int l_level = LOG_DEFAULT_LEVEL; static FILE *l_file = NULL; static char l_prefix[512] = ""; static char l_prefix2[512] = ""; +static char l_fname[512] = ""; static struct { int mask; @@ -52,6 +53,10 @@ static struct { { LOG_LOG, "log" }, { LOG_ERRNO, ""}, { LOG_MALLOC, "malloc"}, + { LOG_APP, "app" }, + { LOG_NOTIME, "" }, + { LOG_APP2 , "app2" }, + { LOG_APP3 , "app3" }, { LOG_ALL, "all" }, { 0, "none" }, { 0, NULL } @@ -66,12 +71,25 @@ FILE *yaz_log_file(void) void yaz_log_init_file (const char *fname) { + if (fname) + { + strncpy(l_fname, fname, sizeof(l_fname)-1); + l_fname[sizeof(l_fname)-1] = '\0'; + } + else + l_fname[0] = '\0'; + yaz_log_reopen(); +} + +void yaz_log_reopen(void) +{ FILE *new_file; if (!l_file) l_file = stderr; - if (!fname || !*fname) + + if (!*l_fname) new_file=stderr; - else if (!(new_file = fopen(fname, "a"))) + else if (!(new_file = fopen(l_fname, "a"))) return; if (l_file != stderr) { @@ -134,7 +152,7 @@ void yaz_log(int level, const char *fmt, ...) int i; time_t ti; struct tm *tim; - char tbuf[50]; + char tbuf[50]=""; int o_level = level; if (!(level & l_level)) @@ -163,17 +181,20 @@ void yaz_log(int level, const char *fmt, ...) /* WIN32 */ if (o_level & LOG_ERRNO) { - strcat(buf, " ["); - yaz_strerror(buf+strlen(buf), 2048); - strcat(buf, "]"); + strcat(buf, " ["); + yaz_strerror(buf+strlen(buf), 2048); + strcat(buf, "]"); } va_end (ap); if (start_hook_func) (*start_hook_func)(o_level, buf, start_hook_info); ti = time(0); tim = localtime(&ti); - strftime(tbuf, 50, "%H:%M:%S-%d/%m", tim); - fprintf(l_file, "%s: %s%s %s%s\n", tbuf, l_prefix, flags, + if (l_level & LOG_NOTIME) + tbuf[0]='\0'; + else + strftime(tbuf, 50, "%H:%M:%S-%d/%m: ", tim); + fprintf(l_file, "%s%s%s %s%s\n", tbuf, l_prefix, flags, l_prefix2, buf); fflush(l_file); if (end_hook_func)