|
@@ -41,48 +41,54 @@ typedef enum UA_LoggerCategory {
|
|
|
extern UA_EXPORT const char *UA_LoggerCategoryNames[3];
|
|
|
|
|
|
typedef struct UA_Logger {
|
|
|
- void (*log_trace)(UA_LoggerCategory category, const char *msg);
|
|
|
- void (*log_debug)(UA_LoggerCategory category, const char *msg);
|
|
|
- void (*log_info)(UA_LoggerCategory category, const char *msg);
|
|
|
- void (*log_warning)(UA_LoggerCategory category, const char *msg);
|
|
|
- void (*log_error)(UA_LoggerCategory category, const char *msg);
|
|
|
- void (*log_fatal)(UA_LoggerCategory category, const char *msg);
|
|
|
+ void (*log_trace)(UA_LoggerCategory category, const char *msg, ...);
|
|
|
+ void (*log_debug)(UA_LoggerCategory category, const char *msg, ...);
|
|
|
+ void (*log_info)(UA_LoggerCategory category, const char *msg, ...);
|
|
|
+ void (*log_warning)(UA_LoggerCategory category, const char *msg, ...);
|
|
|
+ void (*log_error)(UA_LoggerCategory category, const char *msg, ...);
|
|
|
+ void (*log_fatal)(UA_LoggerCategory category, const char *msg, ...);
|
|
|
} UA_Logger;
|
|
|
|
|
|
#if UA_LOGLEVEL <= 100
|
|
|
-#define UA_LOG_TRACE(LOGGER, CATEGORY, MSG) do { if(LOGGER.log_trace) LOGGER.log_trace(CATEGORY, MSG); } while(0)
|
|
|
+#define UA_LOG_TRACE(LOGGER, CATEGORY, MSG...) do { \
|
|
|
+ if(LOGGER.log_trace) LOGGER.log_trace(CATEGORY, MSG); } while(0)
|
|
|
#else
|
|
|
-#define UA_LOG_TRACE(LOGGER, CATEGORY, MSG) do {} while(0)
|
|
|
+#define UA_LOG_TRACE(LOGGER, CATEGORY, MSG...) do {} while(0)
|
|
|
#endif
|
|
|
|
|
|
#if UA_LOGLEVEL <= 200
|
|
|
-#define UA_LOG_DEBUG(LOGGER, CATEGORY, MSG) do { if(LOGGER.log_debug) LOGGER.log_debug(CATEGORY, MSG); } while(0)
|
|
|
+#define UA_LOG_DEBUG(LOGGER, CATEGORY, MSG...) do { \
|
|
|
+ if(LOGGER.log_debug) LOGGER.log_debug(CATEGORY, MSG); } while(0)
|
|
|
#else
|
|
|
-#define UA_LOG_DEBUG(LOGGER, CATEGORY, MSG) do {} while(0)
|
|
|
+#define UA_LOG_DEBUG(LOGGER, CATEGORY, MSG...) do {} while(0)
|
|
|
#endif
|
|
|
|
|
|
#if UA_LOGLEVEL <= 300
|
|
|
-#define UA_LOG_INFO(LOGGER, CATEGORY, MSG) do { if(LOGGER.log_info) LOGGER.log_info(CATEGORY, MSG); } while(0)
|
|
|
+#define UA_LOG_INFO(LOGGER, CATEGORY, MSG...) do { \
|
|
|
+ if(LOGGER.log_info) LOGGER.log_info(CATEGORY, MSG); } while(0)
|
|
|
#else
|
|
|
-#define UA_LOG_INFO(LOGGER, CATEGORY, MSG) do {} while(0)
|
|
|
+#define UA_LOG_INFO(LOGGER, CATEGORY, MSG...) do {} while(0)
|
|
|
#endif
|
|
|
|
|
|
#if UA_LOGLEVEL <= 400
|
|
|
-#define UA_LOG_WARNING(LOGGER, CATEGORY, MSG) do { if(LOGGER.log_warning) LOGGER.log_warning(CATEGORY, MSG); } while(0)
|
|
|
+#define UA_LOG_WARNING(LOGGER, CATEGORY, MSG...) do { \
|
|
|
+ if(LOGGER.log_warning) LOGGER.log_warning(CATEGORY, MSG); } while(0)
|
|
|
#else
|
|
|
-#define UA_LOG_WARNING(LOGGER, CATEGORY, MSG) do {} while(0)
|
|
|
+#define UA_LOG_WARNING(LOGGER, CATEGORY, MSG...) do {} while(0)
|
|
|
#endif
|
|
|
|
|
|
#if UA_LOGLEVEL <= 500
|
|
|
-#define UA_LOG_ERROR(LOGGER, CATEGORY, MSG) do { if(LOGGER.log_error) LOGGER.log_error(CATEGORY, MSG); } while(0)
|
|
|
+#define UA_LOG_ERROR(LOGGER, CATEGORY, MSG...) do { \
|
|
|
+ if(LOGGER.log_error) LOGGER.log_error(CATEGORY, MSG); } while(0)
|
|
|
#else
|
|
|
-#define UA_LOG_ERROR(LOGGER, CATEGORY, MSG) do {} while(0)
|
|
|
+#define UA_LOG_ERROR(LOGGER, CATEGORY, MSG...) do {} while(0)
|
|
|
#endif
|
|
|
|
|
|
#if UA_LOGLEVEL <= 600
|
|
|
-#define UA_LOG_FATAL(LOGGER, CATEGORY, MSG) do { if(LOGGER.log_fatal) LOGGER.log_fatal(CATEGORY, MSG); } while(0)
|
|
|
+#define UA_LOG_FATAL(LOGGER, CATEGORY, MSG...) do { \
|
|
|
+ if(LOGGER.log_fatal) LOGGER.log_fatal(CATEGORY, MSG); } while(0)
|
|
|
#else
|
|
|
-#define UA_LOG_FATAL(LOGGER, CATEGORY, MSG) do {} while(0)
|
|
|
+#define UA_LOG_FATAL(LOGGER, CATEGORY, MSG...) do {} while(0)
|
|
|
#endif
|
|
|
|
|
|
/** @} */
|