/* * Copyright (C) 2006 Martin Willi * Hochschule fuer Technik Rapperswil * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. See . * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. */ /** * @defgroup debug debug * @{ @ingroup libstrongswan */ #ifndef DEBUG_H_ #define DEBUG_H_ #include #ifndef DEBUG_LEVEL # define DEBUG_LEVEL 4 #endif /* DEBUG_LEVEL */ /** debug macros, they call the dbg function hook */ #if DEBUG_LEVEL >= 1 # define DBG1(fmt, ...) dbg(1, fmt, ##__VA_ARGS__) #endif /* DEBUG_LEVEL */ #if DEBUG_LEVEL >= 2 # define DBG2(fmt, ...) dbg(2, fmt, ##__VA_ARGS__) #endif /* DEBUG_LEVEL */ #if DEBUG_LEVEL >= 3 # define DBG3(fmt, ...) dbg(3, fmt, ##__VA_ARGS__) #endif /* DEBUG_LEVEL */ #if DEBUG_LEVEL >= 4 # define DBG4(fmt, ...) dbg(4, fmt, ##__VA_ARGS__) #endif /* DEBUG_LEVEL */ #ifndef DBG1 # define DBG1(...) {} #endif #ifndef DBG2 # define DBG2(...) {} #endif #ifndef DBG3 # define DBG3(...) {} #endif #ifndef DBG4 # define DBG4(...) {} #endif /** dbg function hook, uses dbg_default() by default */ extern void (*dbg) (int level, char *fmt, ...); /** 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_ @}*/