diff options
Diffstat (limited to 'src/log.h')
-rw-r--r-- | src/log.h | 41 |
1 files changed, 32 insertions, 9 deletions
@@ -23,6 +23,12 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +/** + \file log.h + + Logging functions and macros +*/ + #pragma once @@ -32,35 +38,52 @@ #include <string.h> +/** A log level specification */ typedef enum fastd_loglevel { - LL_UNSPEC = 0, - LL_FATAL, - LL_ERROR, - LL_WARN, - LL_INFO, - LL_VERBOSE, - LL_DEBUG, - LL_DEBUG2, - LL_DEFAULT = LL_VERBOSE, + LL_UNSPEC = 0, /**< Nothing is logged */ + LL_FATAL, /**< Only fatal errors are logged */ + LL_ERROR, /**< Only errors are logged */ + LL_WARN, /**< Only warning and errors are logged */ + LL_INFO, /**< General informational messages are logged */ + LL_VERBOSE, /**< More verbose logging */ + LL_DEBUG, /**< Debug messages are logged, excluding messages potentially occuring very often */ + LL_DEBUG2, /**< All debug messages a logged */ + LL_DEFAULT = LL_VERBOSE, /**< The default log level */ } fastd_loglevel_t; +/** Logs a formatted string with the specified log level */ void fastd_logf(const fastd_loglevel_t level, const char *format, ...); +/** Logs a formatted fatal error message */ #define pr_fatal(args...) fastd_logf(LL_FATAL, args) +/** Logs a formatted error message */ #define pr_error(args...) fastd_logf(LL_ERROR, args) +/** Logs a formatted warning message */ #define pr_warn(args...) fastd_logf(LL_WARN, args) +/** Logs a formatted informational message */ #define pr_info(args...) fastd_logf(LL_INFO, args) +/** Logs a formatted verbose message */ #define pr_verbose(args...) fastd_logf(LL_VERBOSE, args) +/** Logs a formatted debug message */ #define pr_debug(args...) fastd_logf(LL_DEBUG, args) +/** Logs a formatted debug2 message */ #define pr_debug2(args...) fastd_logf(LL_DEBUG2, args) +/** Logs a simple error message adding the error found in \e errno */ #define pr_error_errno(message) pr_error("%s: %s", message, strerror(errno)) +/** Logs a simple warning message adding the error found in \e errno */ #define pr_warn_errno(message) pr_warn("%s: %s", message, strerror(errno)) +/** Logs a simple debug message adding the error found in \e errno */ #define pr_debug_errno(message) pr_debug("%s: %s", message, strerror(errno)) +/** Logs a simple debug2 message adding the error found in \e errno */ #define pr_debug2_errno(message) pr_debug2("%s: %s", message, strerror(errno)) +/** Logs a formatted fatal error message and aborts the program */ #define exit_fatal(args...) do { pr_fatal(args); abort(); } while(0) +/** Logs a simple fatal error message after a bug was found and aborts the program */ #define exit_bug(message) exit_fatal("BUG: %s", message) +/** Logs a formatted error message and exits with an error status */ #define exit_error(args...) do { pr_error(args); exit(1); } while(0) +/** Logs a simple error message adding the error found in \e errno and exits with an error status */ #define exit_errno(message) exit_error("%s: %s", message, strerror(errno)) |