diff options
author | Martin Willi <martin@strongswan.org> | 2009-09-16 13:06:16 +0200 |
---|---|---|
committer | Martin Willi <martin@strongswan.org> | 2009-09-16 13:06:16 +0200 |
commit | 5289249449e0e6792cdbc014ec7bc03a0c179354 (patch) | |
tree | 4d82cb0e884a10412b40eaa1465c6b852e84aeb6 /src | |
parent | a474081f1fa9537175f22557ca8b1cdeaff07c36 (diff) | |
download | strongswan-5289249449e0e6792cdbc014ec7bc03a0c179354.tar.bz2 strongswan-5289249449e0e6792cdbc014ec7bc03a0c179354.tar.xz |
Default logger implementation can be modified by dbg_default_set_level/stream
Diffstat (limited to 'src')
-rw-r--r-- | src/libstrongswan/debug.c | 40 | ||||
-rw-r--r-- | src/libstrongswan/debug.h | 10 |
2 files changed, 45 insertions, 5 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; + diff --git a/src/libstrongswan/debug.h b/src/libstrongswan/debug.h index c54eb293c..c3b71cee3 100644 --- a/src/libstrongswan/debug.h +++ b/src/libstrongswan/debug.h @@ -52,10 +52,16 @@ # 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_ @}*/ |