Enable the use of multiple output formats
[fio.git] / log.h
diff --git a/log.h b/log.h
index e5093139f0c24e1e061fb638d898aa8d79869e60..d71fdc0795a8c4196124e83dfe3a52cc640892a3 100644 (file)
--- a/log.h
+++ b/log.h
@@ -4,15 +4,26 @@
 #include <stdio.h>
 #include <stdarg.h>
 
+#include "lib/output_buffer.h"
+
 extern FILE *f_out;
 extern FILE *f_err;
 
 extern int log_err(const char *format, ...) __attribute__ ((__format__ (__printf__, 1, 2)));
 extern int log_info(const char *format, ...) __attribute__ ((__format__ (__printf__, 1, 2)));
+extern int __log_buf(struct buf_output *, const char *format, ...) __attribute__ ((__format__ (__printf__, 2, 3)));
 extern int log_valist(const char *str, va_list);
 extern int log_local_buf(const char *buf, size_t);
 extern int log_info_flush(void);
 
+#define log_buf(buf, format, args...)          \
+do {                                           \
+       if ((buf) != NULL)                      \
+               __log_buf(buf, format, ##args); \
+       else                                    \
+               log_info(format, ##args);       \
+} while (0)
+
 enum {
        FIO_LOG_DEBUG   = 1,
        FIO_LOG_INFO    = 2,