aboutsummaryrefslogtreecommitdiffstats
path: root/src/libstrongswan/debug.c
diff options
context:
space:
mode:
authorMartin Willi <martin@strongswan.org>2009-09-16 13:06:16 +0200
committerMartin Willi <martin@strongswan.org>2009-09-16 13:06:16 +0200
commit5289249449e0e6792cdbc014ec7bc03a0c179354 (patch)
tree4d82cb0e884a10412b40eaa1465c6b852e84aeb6 /src/libstrongswan/debug.c
parenta474081f1fa9537175f22557ca8b1cdeaff07c36 (diff)
downloadstrongswan-5289249449e0e6792cdbc014ec7bc03a0c179354.tar.bz2
strongswan-5289249449e0e6792cdbc014ec7bc03a0c179354.tar.xz
Default logger implementation can be modified by dbg_default_set_level/stream
Diffstat (limited to 'src/libstrongswan/debug.c')
-rw-r--r--src/libstrongswan/debug.c40
1 files changed, 37 insertions, 3 deletions
diff --git a/src/libstrongswan/debug.c b/src/libstrongswan/debug.c
index 3db58ba74..5bd4243d7 100644
--- a/src/libstrongswan/debug.c
+++ b/src/libstrongswan/debug.c
@@ -19,19 +19,53 @@
#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;
+