Mercurial > trustbridge
view common/logging.h @ 320:1628615d904e
Replaced snprintf and static buffers with xasprintf.
author | Sascha Wilde <wilde@intevation.de> |
---|---|
date | Fri, 04 Apr 2014 18:00:40 +0200 |
parents | b033b16dd290 |
children | b1059360a0c7 |
line wrap: on
line source
#ifndef COMMON_LOGGING_H #define COMMON_LOGGING_H #ifdef __cplusplus extern "C" { #endif /* * @file * @brief Logging and debugging functions */ #ifdef WIN32 #include <windows.h> /** @brief Gets the localized error message for the last error * returned by GetLastError * * @returns utf8 error message that needs to be freed by the caller. **/ char *getLastErrorMsg(); #endif /** * @def DEBUGOUTPUT * @brief If defined code for extra debugging output will be generated. * * Will be defined if current build is not an RELEASE_BUILD. */ #ifndef RELEASE_BUILD #define DEBUGOUTPUT #endif /** * @def DEBUGPREFIX * @brief A string prepended to debug output. * * Should be defined to indicate which module created the output. */ #ifndef DEBUGPREFIX #define DEBUGPREFIX "" #endif /** * @def DEBUGPRINTF(fmt, ...) * @brief Debug printf * * Prints to stderr if DEBUGOUTPUT is defined. */ #ifdef DEBUGOUTPUT #define DEBUGPRINTF(fmt, ...) fprintf(stderr, DEBUGPREFIX "DEBUG: " fmt, ##__VA_ARGS__); #else #define DEBUGPRINTF(fmt, ...) #endif /** * @def DEBUGMSG(msg) * @brief Prints a static debug message * * If DEBUGOUTPUT is defined this. Prints a debug message * to stdout on Unix systems. On Windows OutputDebugString is used. */ #ifdef DEBUGOUTPUT # ifdef WIN32 # define DEBUGMSG(msg) OutputDebugString (msg); # else # define DEBUGMSG(msg) printf (DEBUGPREFIX "DEBUG: " msg "\n"); # endif #else # define DEBUGPRINTF(fmt, ...) #endif /** * @def ERRORPRINTF(fmt, ...) * @brief Debug printf * * Prints an error to stderr */ #define ERRORPRINTF(fmt, ...) fprintf(stderr, DEBUGPREFIX "ERROR: " fmt, ##__VA_ARGS__); #ifdef __cplusplus } #endif #endif /* COMMON_LOGGING_H */