Fix: do not print error and bug messages when quiet (-q) is present
[lttng-tools.git] / src / common / error.h
index 1b000ab7a58759bcf62422368d4d05474454ef95..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);
@@ -90,9 +96,9 @@ extern int lttng_opt_verbose;
 #define _MSG(fmt, args...) \
        __lttng_print(PRINT_MSG, fmt, ## args)
 #define ERR(fmt, args...) \
-       _ERRMSG("ERROR", PRINT_ERR, fmt, ## args)
+       __lttng_print(PRINT_ERR, "Error: " fmt "\n", ## args)
 #define WARN(fmt, args...) \
-       _ERRMSG("WARN", PRINT_WARN, fmt, ## args)
+       __lttng_print(PRINT_ERR, "Warning: " fmt "\n", ## args)
 
 #define BUG(fmt, args...) _ERRMSG("BUG", PRINT_BUG, fmt, ## args)
 
This page took 0.024091 seconds and 4 git commands to generate.