Logo Search packages:      
Sourcecode: xacobeo version File versions  Download package

logger.h

#ifndef __XACOBEO_LOGGER_H
#define __XACOBEO_LOGGER_H

#define LOG(level, ...) my_logger_log(__FILE__, __LINE__, __FUNCTION__, level, __VA_ARGS__)

// Pseudo Log4c
#ifdef HAS_DEBUG
#  define TRACE(...) LOG("TRACE", __VA_ARGS__)
#  define DEBUG(...) LOG("DEBUG", __VA_ARGS__)
#  define INFO(...)  LOG("INFO",  __VA_ARGS__)
#  define NOTE(...)  LOG("NOTE",  __VA_ARGS__)
#else
// Trick the compiler by pretending that we are using the statement. Otherwise
// it can issue warnings regarding unused variables.
#  define LOG_NOOP(...) if (0) LOG("noop", __VA_ARGS__)
#  define TRACE(...)    LOG_NOOP(__VA_ARGS__)
#  define DEBUG(...)    LOG_NOOP(__VA_ARGS__)
#  define INFO(...)     LOG_NOOP(__VA_ARGS__)
#  define NOTE(...)     LOG_NOOP(__VA_ARGS__)
#endif


// This logging levels are always available
#define WARN(...)  LOG("WARN",  __VA_ARGS__)
#define ERROR(...) LOG("ERROR", __VA_ARGS__)


//
// Prototypes
//

void
my_logger_log (
      const char *file, 
      int         line, 
      const char *function, 
      const char *level, 
      const char *format, 
      ...
);


#endif

Generated by  Doxygen 1.6.0   Back to index