Add internal BT_ASSERT() and BT_ASSERT_PRE() helpers
[babeltrace.git] / lib / logging.c
index 371bc596048295f7a66c732ff3237c38e00aefef..3d9a1bcded663861ab0a12f0dcd394eb68e5eb17 100644 (file)
 #define BT_LOG_TAG "LIB"
 #include <babeltrace/lib-logging-internal.h>
 
+#ifdef BT_DEV_MODE
+/*
+ * Default log level is FATAL in developer mode because fatal logging is
+ * our way to communicate an unsatisfied precondition and the details.
+ */
+# define DEFAULT_LOG_LEVEL     BT_LOG_FATAL
+#else
+/*
+ * In non-developer mode, use NONE by default: we don't to print logging
+ * statements for any executable which links with the library. The
+ * executable should call bt_logging_set_global_level() or the
+ * executable's user should set the BABELTRACE_LOGGING_GLOBAL_LEVEL
+ * environment variable.
+ */
+# define DEFAULT_LOG_LEVEL     BT_LOG_NONE
+#endif /* BT_DEV_MODE */
+
 BT_HIDDEN
-int bt_lib_log_level = BT_LOG_NONE;
+int bt_lib_log_level = DEFAULT_LOG_LEVEL;
 
 enum bt_logging_level bt_logging_get_minimal_level(void)
 {
@@ -42,6 +59,17 @@ enum bt_logging_level bt_logging_get_global_level(void)
 
 void bt_logging_set_global_level(enum bt_logging_level log_level)
 {
+#ifdef BT_DEV_MODE
+       /*
+        * Do not allow the library's log level to fall to NONE when in
+        * developer mode because fatal logging is our way to
+        * communicate an unsatisfied precondition and the details.
+        */
+       if (log_level == BT_LOG_NONE) {
+               log_level = BT_LOG_FATAL;
+       }
+#endif
+
        bt_lib_log_level = log_level;
 }
 
This page took 0.023513 seconds and 4 git commands to generate.