Fix: do not print error and bug messages when quiet (-q) is present
[lttng-tools.git] / src / common / error.h
index 684ff5e5f4f9af9852c35e32d7182005c0985a38..89b3363ce1c95d88ef64420ff40222f088222633 100644 (file)
@@ -49,6 +49,7 @@ extern DECLARE_URCU_TLS(struct log_time, error_log_time);
 
 extern int lttng_opt_quiet;
 extern int lttng_opt_verbose;
+extern int lttng_opt_mi;
 
 /* Error type. */
 #define PRINT_ERR   0x1
@@ -61,21 +62,26 @@ extern int lttng_opt_verbose;
 
 /*
  * Macro for printing message depending on command line option and verbosity.
+ *
+ * Machine interface:
+ * We use lttng_opt_mi to suppress all normal msg to stdout. We don't
+ * want any nested msg to show up when printing mi to stdout(if it's the case).
+ * All warnings and errors should be printed to stderr as normal.
  */
 #define __lttng_print(type, fmt, args...)                           \
        do {                                                            \
-               if (lttng_opt_quiet == 0 && type == PRINT_MSG) {            \
+               if (lttng_opt_quiet == 0 && lttng_opt_mi == 0 &&            \
+                               type == PRINT_MSG) {                                \
                        fprintf(stdout, fmt, ## args);                          \
-               } else if (lttng_opt_quiet == 0 &&                          \
+               } else if (lttng_opt_quiet == 0 && lttng_opt_mi == 0 &&     \
                                (((type & PRINT_DBG) && lttng_opt_verbose == 1) ||  \
                                ((type & (PRINT_DBG | PRINT_DBG2)) &&               \
                                        lttng_opt_verbose == 2) ||                      \
                                ((type & (PRINT_DBG | PRINT_DBG2 | PRINT_DBG3)) &&  \
                                        lttng_opt_verbose == 3))) {                     \
                        fprintf(stderr, fmt, ## args);                          \
-               } else if (lttng_opt_quiet == 0 && (type & (PRINT_WARN))) { \
-                       fprintf(stderr, fmt, ## args);                          \
-               } else if (type & (PRINT_ERR | PRINT_BUG)) {                \
+               } else if (lttng_opt_quiet == 0 &&                          \
+                               (type & (PRINT_WARN | PRINT_ERR | PRINT_BUG))) {    \
                        fprintf(stderr, fmt, ## args);                          \
                }                                                           \
        } while (0);
This page took 0.023677 seconds and 4 git commands to generate.