diff options
Diffstat (limited to 'mdk-stage1/log.c')
-rw-r--r-- | mdk-stage1/log.c | 41 |
1 files changed, 25 insertions, 16 deletions
diff --git a/mdk-stage1/log.c b/mdk-stage1/log.c index 5379c96dd..cb3f741dc 100644 --- a/mdk-stage1/log.c +++ b/mdk-stage1/log.c @@ -1,7 +1,7 @@ /* - * Guillaume Cottenceau (gc@mandrakesoft.com) + * Guillaume Cottenceau (gc) * - * Copyright 2000 MandrakeSoft + * Copyright 2000 Mandriva * * This software may be freely redistributed under the terms of the GNU * public license. @@ -31,27 +31,35 @@ #include "log.h" +static FILE * logtty = NULL; static FILE * logfile = NULL; void vlog_message(const char * s, va_list args) { - fprintf(logfile, "* "); - vfprintf(logfile, s, args); - fprintf(logfile, "\n"); - fflush(logfile); + va_list args_copy; + va_copy(args_copy, args); + + if (logfile) { + fprintf(logfile, "* "); + vfprintf(logfile, s, args); + fprintf(logfile, "\n"); + fflush(logfile); + } + if (logtty) { + fprintf(logtty, "* "); + vfprintf(logtty, s, args_copy); + fprintf(logtty, "\n"); + fflush(logtty); + } + + va_end(args_copy); } void log_message(const char * s, ...) { va_list args; - - if (!logfile) { - fprintf(stderr, "Log is not open!\n"); - return; - } - va_start(args, s); vlog_message(s, args); va_end(args); @@ -59,7 +67,7 @@ void log_message(const char * s, ...) return; } -void log_perror(char *msg) +void log_perror(const char *msg) { log_message("%s: %s", msg, strerror(errno)); } @@ -68,9 +76,8 @@ void log_perror(char *msg) void open_log(void) { if (!IS_TESTING) { - logfile = fopen("/dev/tty3", "w"); - if (!logfile) - logfile = fopen("/tmp/install.log", "a"); + logtty = fopen("/dev/tty3", "w"); + logfile = fopen("/tmp/stage1.log", "w"); } else logfile = fopen("debug.log", "w"); @@ -81,5 +88,7 @@ void close_log(void) if (logfile) { log_message("stage1: disconnecting life support systems"); fclose(logfile); + if (logtty) + fclose(logtty); } } |