00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 #ifndef UA_LOG_H_
00017 #define UA_LOG_H_
00018
00019 #ifdef __cplusplus
00020 extern "C" {
00021 #endif
00022
00023 #include "ua_config.h"
00024
00035 typedef enum {
00036 UA_LOGLEVEL_TRACE,
00037 UA_LOGLEVEL_DEBUG,
00038 UA_LOGLEVEL_INFO,
00039 UA_LOGLEVEL_WARNING,
00040 UA_LOGLEVEL_ERROR,
00041 UA_LOGLEVEL_FATAL
00042 } UA_LogLevel;
00043
00044 typedef enum {
00045 UA_LOGCATEGORY_COMMUNICATION,
00046 UA_LOGCATEGORY_SERVER,
00047 UA_LOGCATEGORY_CLIENT,
00048 UA_LOGCATEGORY_USERLAND
00049 } UA_LogCategory;
00050
00051 typedef void (*UA_Logger)(UA_LogLevel level, UA_LogCategory category, const char *msg, ...);
00052
00053 #if UA_LOGLEVEL <= 100
00054 #define UA_LOG_TRACE(LOGGER, CATEGORY, ...) do { \
00055 if(LOGGER) LOGGER(UA_LOGLEVEL_TRACE, CATEGORY, __VA_ARGS__); } while(0)
00056 #else
00057 #define UA_LOG_TRACE(LOGGER, CATEGORY, ...) do {} while(0)
00058 #endif
00059
00060 #if UA_LOGLEVEL <= 200
00061 #define UA_LOG_DEBUG(LOGGER, CATEGORY, ...) do { \
00062 if(LOGGER) LOGGER(UA_LOGLEVEL_DEBUG, CATEGORY, __VA_ARGS__); } while(0)
00063 #else
00064 #define UA_LOG_DEBUG(LOGGER, CATEGORY, ...) do {} while(0)
00065 #endif
00066
00067 #if UA_LOGLEVEL <= 300
00068 #define UA_LOG_INFO(LOGGER, CATEGORY, ...) do { \
00069 if(LOGGER) LOGGER(UA_LOGLEVEL_INFO, CATEGORY, __VA_ARGS__); } while(0)
00070 #else
00071 #define UA_LOG_INFO(LOGGER, CATEGORY, ...) do {} while(0)
00072 #endif
00073
00074 #if UA_LOGLEVEL <= 400
00075 #define UA_LOG_WARNING(LOGGER, CATEGORY, ...) do { \
00076 if(LOGGER) LOGGER(UA_LOGLEVEL_WARNING, CATEGORY, __VA_ARGS__); } while(0)
00077 #else
00078 #define UA_LOG_WARNING(LOGGER, CATEGORY, ...) do {} while(0)
00079 #endif
00080
00081 #if UA_LOGLEVEL <= 500
00082 #define UA_LOG_ERROR(LOGGER, CATEGORY, ...) do { \
00083 if(LOGGER) LOGGER(UA_LOGLEVEL_ERROR, CATEGORY, __VA_ARGS__); } while(0)
00084 #else
00085 #define UA_LOG_ERROR(LOGGER, CATEGORY, ...) do {} while(0)
00086 #endif
00087
00088 #if UA_LOGLEVEL <= 600
00089 #define UA_LOG_FATAL(LOGGER, CATEGORY, ...) do { \
00090 if(LOGGER) LOGGER(UA_LOGLEVEL_FATAL, CATEGORY, __VA_ARGS__); } while(0)
00091 #else
00092 #define UA_LOG_FATAL(LOGGER, CATEGORY, ...) do {} while(0)
00093 #endif
00094
00097 #ifdef __cplusplus
00098 }
00099 #endif
00100
00101 #endif