Default logger implementation can be modified by dbg_default_set_level/stream
authorMartin Willi <martin@strongswan.org>
Wed, 16 Sep 2009 11:06:16 +0000 (13:06 +0200)
committerMartin Willi <martin@strongswan.org>
Wed, 16 Sep 2009 11:06:16 +0000 (13:06 +0200)
src/libstrongswan/debug.c
src/libstrongswan/debug.h

index 3db58ba..5bd4243 100644 (file)
 #include "debug.h"
 
 /**
+ * level logged by the default logger
+ */
+static int default_level = 1;
+
+/**
+ * stream logged to by the default logger
+ */
+static FILE *default_stream = NULL;
+
+/**
  * default dbg function which printf all to stderr
  */
 void dbg_default(int level, char *fmt, ...)
 {
-       if (level <= 1)
+       if (!default_stream)
+       {
+               default_stream = stderr;
+       }
+       if (level <= default_level)
        {
                va_list args;
 
                va_start(args, fmt);
-               vfprintf(stderr, fmt, args);
-               fprintf(stderr, "\n");
+               vfprintf(default_stream, fmt, args);
+               fprintf(default_stream, "\n");
                va_end(args);
        }
 }
 
+/**
+ * set the level logged by the default stderr logger
+ */
+void dbg_default_set_level(int level)
+{
+       default_level = level;
+}
+
+/**
+ * set the stream logged by dbg_default() to
+ */
+void dbg_default_set_stream(FILE *stream)
+{
+       default_stream = stream;
+}
+
+/**
+ * The registered debug hook.
+ */
 void (*dbg) (int level, char *fmt, ...) = dbg_default;
+
index c54eb29..c3b71ce 100644 (file)
 # define DBG4(...) {}
 #endif
 
-/** dbg function hook, uses stderr logger by default */
+/** dbg function hook, uses dbg_default() by default */
 extern void (*dbg) (int level, char *fmt, ...);
 
-/** default logging function, prints to stderr */
+/** default logging function */
 void dbg_default(int level, char *fmt, ...);
 
+/** set the level logged by dbg_default() */
+void dbg_default_set_level(int level);
+
+/** set the stream logged by dbg_default() to */
+void dbg_default_set_stream(FILE *stream);
+
 #endif /** DEBUG_H_ @}*/