[BACK]Return to log.c CVS log [TXT][DIR] Up to [local] / blind

Diff for /blind/log.c between version 1.2 and 1.5

version 1.2, 2022/03/17 09:30:59 version 1.5, 2022/03/18 19:55:19
Line 1 
Line 1 
 /*  /*
  * Copyright (c) 2022 Daniel Kroczynski <d@kroczynski.net>  1;95;0c * Copyright (c) 2022 Daniel Kroczynski <d@kroczynski.net>
  *   *
  * Permission to use, copy, modify, and distribute this software for any   * Permission to use, copy, modify, and distribute this software for any
  * purpose with or without fee is hereby granted, provided that the above   * purpose with or without fee is hereby granted, provided that the above
Line 15 
Line 15 
  */   */
   
 #include <stdio.h>  #include <stdio.h>
   #include <stdlib.h>
 #include <stdarg.h>  #include <stdarg.h>
 #include <syslog.h>  #include <syslog.h>
   #include <string.h>
   #include <errno.h>
 #include <time.h>  #include <time.h>
   
 static int  log_backgnd;  static int  log_background;
 static int  log_verbose;  static int  log_verbose;
 const char *log_procname;  const char *log_procname;
   
 void log_init(int, int);  void    log_initialize(int, int);
 void log_setv(int);  void    log_setverbose(int);
 int  log_getv(void);  int     log_getverbose(void);
 void log_info(const char *, ...)  void    log_send(const char *, va_list)
           __attribute__((__format__ (printf, 1, 0)));
   void    log_info(const char *, ...)
         __attribute__((__format__ (printf, 1, 2)));          __attribute__((__format__ (printf, 1, 2)));
 void log_debug(const char *, ...)  void    log_debug(const char *, ...)
         __attribute__((__format__ (printf, 1, 2)));          __attribute__((__format__ (printf, 1, 2)));
   __dead void log_fatal(const char *, ...)
           __attribute__((__format__ (printf, 1, 2)));
   
 void  void
 log_init(int background, int facility)  log_initialize(int background, int facility)
 {  {
         extern char *__progname;          extern char *__progname;
   
         if (__progname != NULL)          if (__progname != NULL)
                 log_procname = __progname;                  log_procname = __progname;
   
         log_backgnd = background;          log_background = background;
         if (log_backgnd)          if (log_background)
                 openlog(log_procname, LOG_PID | LOG_NDELAY, facility);                  openlog(log_procname, LOG_PID | LOG_NDELAY, facility);
   
         tzset();          tzset();
 }  }
   
 void  void
 log_setv(int verb)  log_setverbose(int verb)
 {  {
         log_verbose = verb;          log_verbose = verb;
 }  }
   
 int  int
 log_getv(void)  log_getverbose(void)
 {  {
         return (log_verbose);          return (log_verbose);
 }  }
   
 void  void
   log_send(const char *info, va_list ap)
   {
           if (info != NULL) {
                   if (log_background)
                           vsyslog(LOG_INFO, info, ap);
                   else {
                           vfprintf(stderr, info, ap);
                           fprintf(stderr, "\n");
                   }
           }
   }
   
   void
 log_info(const char *info, ...)  log_info(const char *info, ...)
 {  {
         va_list ap;          va_list ap;
   
         va_start(ap, info);          va_start(ap, info);
           log_send(info, ap);
         if (log_backgnd)  
                 vsyslog(LOG_INFO, info, ap);  
         else {  
                 vfprintf(stderr, info, ap);  
                 fprintf(stderr, "\n");  
         }  
   
         va_end(ap);          va_end(ap);
 }  }
   
Line 82  log_debug(const char *info, ...)
Line 95  log_debug(const char *info, ...)
   
         if (log_verbose) {          if (log_verbose) {
                 va_start(ap, info);                  va_start(ap, info);
                   log_send(info, ap);
                 if (log_backgnd)  
                         vsyslog(LOG_INFO, info, ap);  
                 else {  
                         vfprintf(stderr, info, ap);  
                         fprintf(stderr, "\n");  
                 }  
   
                 va_end(ap);                  va_end(ap);
         }          }
 }  }
   
   void
   log_fatal(const char *info, ...)
   {
           va_list ap;
   
           va_start(ap, info);
           log_send(info, ap);
           va_end(ap);
           log_info("%s", strerror(errno));
           exit(1);
   }
   

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.5

https://cvs.kroczynski.net