Optimize handling of unused logging
authorHenning Rogge <hrogge@googlemail.com>
Sun, 23 Aug 2009 09:54:11 +0000 (11:54 +0200)
committerHenning Rogge <hrogge@googlemail.com>
Sun, 23 Aug 2009 09:54:11 +0000 (11:54 +0200)
src/olsr_logging.c
src/olsr_logging.h

index c65a613..c3ace81 100644 (file)
@@ -57,10 +57,11 @@ struct log_handler_entry {
     bool(*bitmask)[LOG_SEVERITY_COUNT][LOG_SOURCE_COUNT];
 };
 
+bool log_global_mask[LOG_SEVERITY_COUNT][LOG_SOURCE_COUNT];
+
 static struct log_handler_entry log_handler[MAX_LOG_HANDLER];
 static int log_handler_count = 0;
 
-static bool log_global_mask[LOG_SEVERITY_COUNT][LOG_SOURCE_COUNT];
 
 static bool log_initialized = false;
 static FILE *log_fileoutput = NULL;
index a99cef7..9a9eff6 100644 (file)
 #define OLSR_DEBUG(source, format, args...) do { } while(0)
 #define OLSR_DEBUG_NH(source, format, args...) do { } while(0)
 #else
-#define OLSR_DEBUG(source, format, args...) olsr_log(SEVERITY_DEBUG, source, false, __FILE__, __LINE__, format, ##args)
-#define OLSR_DEBUG_NH(source, format, args...) olsr_log(SEVERITY_DEBUG, source, true, __FILE__, __LINE__, format, ##args)
+#define OLSR_DEBUG(source, format, args...) do { if (log_global_mask[SEVERITY_DEBUG][source]) olsr_log(SEVERITY_DEBUG, source, false, __FILE__, __LINE__, format, ##args); } while(0)
+#define OLSR_DEBUG_NH(source, format, args...) do { if (log_global_mask[SEVERITY_DEBUG][source]) olsr_log(SEVERITY_DEBUG, source, true, __FILE__, __LINE__, format, ##args); } while(0)
 #endif
 
 #ifdef REMOVE_LOG_INFO
 #define OLSR_INFO(source, format, args...) do { } while(0)
 #define OLSR_INFO_NH(source, format, args...) do { } while(0)
 #else
-#define OLSR_INFO(source, format, args...) olsr_log(SEVERITY_INFO, source, false, __FILE__, __LINE__, format, ##args)
-#define OLSR_INFO_NH(source, format, args...) olsr_log(SEVERITY_INFO, source, true, __FILE__, __LINE__, format, ##args)
+#define OLSR_INFO(source, format, args...) do { if (log_global_mask[SEVERITY_INFO][source]) olsr_log(SEVERITY_INFO, source, false, __FILE__, __LINE__, format, ##args); } while(0)
+#define OLSR_INFO_NH(source, format, args...) do { if (log_global_mask[SEVERITY_INFO][source]) olsr_log(SEVERITY_INFO, source, true, __FILE__, __LINE__, format, ##args); } while(0)
 #endif
 
 #ifdef REMOVE_LOG_WARN
 #define OLSR_WARN(source, format, args...) do { } while(0)
 #define OLSR_WARN_NH(source, format, args...) do { } while(0)
 #else
-#define OLSR_WARN(source, format, args...) olsr_log(SEVERITY_WARN, source, false, __FILE__, __LINE__, format, ##args)
-#define OLSR_WARN_NH(source, format, args...) olsr_log(SEVERITY_WARN, source, true, __FILE__, __LINE__, format, ##args)
+#define OLSR_WARN(source, format, args...) do { if (log_global_mask[SEVERITY_WARN][source]) olsr_log(SEVERITY_WARN, source, false, __FILE__, __LINE__, format, ##args); } while(0)
+#define OLSR_WARN_NH(source, format, args...) do { if (log_global_mask[SEVERITY_WARN][source]) olsr_log(SEVERITY_WARN, source, true, __FILE__, __LINE__, format, ##args); } while(0)
 #endif
 
 #ifdef REMOVE_LOG_ERROR
 #define OLSR_ERROR(source, format, args...) do { } while(0)
 #define OLSR_ERROR_NH(source, format, args...) do { } while(0)
 #else
-#define OLSR_ERROR(source, format, args...) olsr_log(SEVERITY_ERR, source, false, __FILE__, __LINE__, format, ##args)
-#define OLSR_ERROR_NH(source, format, args...) olsr_log(SEVERITY_ERR, source, true, __FILE__, __LINE__, format, ##args)
+#define OLSR_ERROR(source, format, args...) do { if (log_global_mask[SEVERITY_ERR][source]) olsr_log(SEVERITY_ERR, source, false, __FILE__, __LINE__, format, ##args); } while(0)
+#define OLSR_ERROR_NH(source, format, args...) do { if (log_global_mask[SEVERITY_ERR][source]) olsr_log(SEVERITY_ERR, source, true, __FILE__, __LINE__, format, ##args); } while(0)
 #endif
 
 void EXPORT(olsr_log_init) (void);
@@ -108,4 +108,6 @@ void EXPORT(olsr_log_updatemask) (void);
 void EXPORT(olsr_log) (enum log_severity, enum log_source, bool, const char *, int, const char *, ...)
   __attribute__ ((format(printf, 6, 7)));
 
+extern bool EXPORT(log_global_mask)[LOG_SEVERITY_COUNT][LOG_SOURCE_COUNT];
+
 #endif /* OLSR_LOGGING_H_ */