]> mj.ucw.cz Git - libucw.git/commitdiff
Cleaned up interface of the logger.
authorMartin Mares <mj@ucw.cz>
Wed, 4 Jun 2008 17:23:42 +0000 (19:23 +0200)
committerMartin Mares <mj@ucw.cz>
Wed, 4 Jun 2008 17:23:42 +0000 (19:23 +0200)
Also uninlined log_switch_{en,dis}able().

lib/lib.h
lib/log-file.c

index 1bd0b35402247b9f197ed6183ece2b43793db3ca..e93bdf6a750157a8ba29e642c09bd7cb0845772d 100644 (file)
--- a/lib/lib.h
+++ b/lib/lib.h
 #define L_ERROR_R      'e'
 #define L_FATAL                '!'             /* die() */
 
-#define L_SIGHANDLER   0x10000         /* Avoid things which are unsafe in signal handlers */
+#define L_SIGHANDLER   0x10000         /* Avoid operations that are unsafe in signal handlers */
 
-extern char *log_title;                        /* NULL - print no title, default is log_progname */
+extern char *log_title;                        /* NULL - print no title, default is program name given to log_init() */
 extern char *log_filename;             /* Expanded name of the current log file */
-extern volatile int log_switch_nest;   /* log_switch() nesting counter, increment to disable automatic switches */
 extern int log_pid;                    /* 0 if shouldn't be logged */
 extern int log_precise_timings;                /* Include microsecond timestamps in log messages */
 extern void (*log_die_hook)(void);
@@ -106,8 +105,13 @@ void vmsg(uns cat, const char *fmt, va_list args);
 void die(const char *, ...) NONRET FORMAT_CHECK(printf,1,2);
 void log_init(const char *argv0);
 void log_file(const char *name);
-void log_fork(void);
+void log_fork(void);                   /* Call after fork() to update log_pid */
+
+/* If the log name contains metacharacters for date and time, we switch the logs
+ * automatically whenever the name changes. You can disable it and switch explicitly. */
 int log_switch(void);
+void log_switch_disable(void);
+void log_switch_enable(void);
 
 void assert_failed(const char *assertion, const char *file, int line) NONRET;
 void assert_failed_noinfo(void) NONRET;
@@ -126,9 +130,6 @@ void assert_failed_noinfo(void) NONRET;
 #define DBG(x,y...) do { } while(0)
 #endif
 
-static inline void log_switch_disable(void) { log_switch_nest++; }
-static inline void log_switch_enable(void) { ASSERT(log_switch_nest); log_switch_nest--; }
-
 /* Memory allocation */
 
 #define xmalloc sh_xmalloc
index 401e797c3edeca4d4e5a529bc4b0e12debb13c30..0b22ff243e8811618dadf45c201b17b9051f74ec 100644 (file)
@@ -20,7 +20,7 @@
 static char *log_name_patt;
 static int log_params;
 static int log_filename_size;
-volatile int log_switch_nest;
+static int log_switch_nest;
 
 static int
 do_log_switch(struct tm *tm)
@@ -94,6 +94,19 @@ log_fork(void)
   log_pid = getpid();
 }
 
+void
+log_switch_disable(void)
+{
+  log_switch_nest++;
+}
+
+void
+log_switch_enable(void)
+{
+  ASSERT(log_switch_nest);
+  log_switch_nest--;
+}
+
 #ifdef TEST
 
 int main(int argc, char **argv)