home *** CD-ROM | disk | FTP | other *** search
/ Chip 1998 February / CHIP_2_98.iso / misc / src / install / log.c < prev    next >
C/C++ Source or Header  |  1997-09-17  |  1KB  |  70 lines

  1. #include <fcntl.h>
  2. #include <stdarg.h>
  3. #include <stdio.h>
  4. #include <stdlib.h>
  5. #include <unistd.h>
  6.  
  7. #include "log.h"
  8.  
  9. static FILE * logfile = NULL;
  10. static int logfd;
  11. static int logDebugMessages = 0;
  12.  
  13. static void doLogMessage(char * s, va_list args);
  14.  
  15. void logMessage(char * s, ...) {
  16.     va_list args;
  17.  
  18.     va_start(args, s);
  19.     doLogMessage(s, args);
  20.     va_end(args);
  21.  
  22.     return;
  23. }
  24.  
  25. void doLogDebugMessage(char * s, ...) {
  26.     va_list args;
  27.  
  28.     if (!logDebugMessages) return;
  29.  
  30.     va_start(args, s);
  31.     doLogMessage(s, args);
  32.     va_end(args);
  33.  
  34.     return;
  35. }
  36.  
  37. static void doLogMessage(char * s, va_list args) {
  38.     if (!logfile) return;
  39.  
  40.     fprintf(logfile, "* ");
  41.     vfprintf(logfile, s, args);
  42.     fprintf(logfile, "\n");
  43.  
  44.     fflush(logfile);
  45. }
  46.  
  47. void openLog(void) {
  48.     if (!testing) {
  49.     logfile = fopen("/dev/tty3", "w");
  50.     if (logfile)
  51.         logfd = open("/dev/tty3", O_WRONLY);
  52.     else {
  53.         logfile = fopen("/tmp/install.log", "a");
  54.         logfd = open("/tmp/install.log", O_WRONLY| O_APPEND);
  55.     }
  56.     } else {
  57.     logfile = fopen("debug.log", "w");
  58.     logfd = open("debug.log", O_WRONLY);
  59.     }
  60.  
  61.     if (getenv("DEBUG")) logDebugMessages = 1;
  62. }
  63.  
  64. void closeLog(void) {
  65.     if (logfile) {
  66.     fclose(logfile);
  67.     close(logfd);
  68.     }
  69. }
  70.