Fix: do not print error and bug messages when quiet (-q) is present
[lttng-tools.git] / src / common / error.h
index 1ee6e675a5b752eb600c0e2f4d19dc2891fcd6e7..d072b00c804cb129b0b87b47410d43b75ade6499 100644 (file)
 #include <lttng/lttng-error.h>
 #include <common/compat/tid.h>
 
+/* Avoid conflict with Solaris <sys/regset.h> */
+#if defined(ERR) && defined(__sun__)
+#undef ERR
+#endif
+
 /* Stringify the expansion of a define */
 #define XSTR(d) STR(d)
 #define STR(s) #s
@@ -80,9 +85,8 @@ extern int lttng_opt_mi;
                                ((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);
@@ -106,6 +110,34 @@ extern int lttng_opt_mi;
 #define DBG(fmt, args...) _ERRMSG("DEBUG1", PRINT_DBG, fmt, ## args)
 #define DBG2(fmt, args...) _ERRMSG("DEBUG2", PRINT_DBG2, fmt, ## args)
 #define DBG3(fmt, args...) _ERRMSG("DEBUG3", PRINT_DBG3, fmt, ## args)
+#define LOG(type, fmt, args...)                        \
+       do {                                    \
+               switch (type) {                 \
+               case PRINT_ERR:                 \
+                       ERR(fmt, ## args);      \
+                       break;                  \
+               case PRINT_WARN:                \
+                       WARN(fmt, ## args);     \
+                       break;                  \
+               case PRINT_BUG:                 \
+                       BUG(fmt, ## args);      \
+                       break;                  \
+               case PRINT_MSG:                 \
+                       MSG(fmt, ## args);      \
+                       break;                  \
+               case PRINT_DBG:                 \
+                       DBG(fmt, ## args);      \
+                       break;                  \
+               case PRINT_DBG2:                \
+                       DBG2(fmt, ## args);     \
+                       break;                  \
+               case PRINT_DBG3:                \
+                       DBG3(fmt, ## args);     \
+                       break;                  \
+               default:                        \
+                       assert(0);              \
+               }                               \
+       } while(0);
 
 #define _PERROR(fmt, args...) _ERRMSG("PERROR", PRINT_ERR, fmt, ## args)
 
This page took 0.023569 seconds and 4 git commands to generate.