From dd22a91fdf79ad39dedb83449b905e7659212b45 Mon Sep 17 00:00:00 2001 From: Philippe Proulx Date: Tue, 2 Jul 2019 17:16:27 -0400 Subject: [PATCH] Allow only TRACE, DEBUG, and INFO as the build-time, minimal log level As there's no noticeable performance difference between having the INFO log level and the FATAL log level as the build's minimal log level, force it to be TRACE, DEBUG, or INFO. This means that INFO, WARN, ERROR, and FATAL logging is always enabled, whatever the build configuration. This seems reasonable and could prove useful to support/debugging operations. Signed-off-by: Philippe Proulx Change-Id: Ie4261fd16d344587ef4b37ea1715d7302ad25087 Reviewed-on: https://review.lttng.org/c/babeltrace/+/1590 --- CONTRIBUTING.adoc | 14 ++++++++------ configure.ac | 10 +++------- 2 files changed, 11 insertions(+), 13 deletions(-) diff --git a/CONTRIBUTING.adoc b/CONTRIBUTING.adoc index 13c5b583..416c4bfe 100644 --- a/CONTRIBUTING.adoc +++ b/CONTRIBUTING.adoc @@ -380,7 +380,10 @@ $ BABELTRACE_MINIMAL_LOG_LEVEL=WARN ./configure + The default build-time log level is `DEBUG`. For optimal performance, set it to `INFO`, which effectively disables all fast path logging in -all the Babeltrace modules. +all the Babeltrace modules. You can't set it to `WARN`, `ERROR`, +`FATAL`, or `NONE` because the impact on performance is minuscule +starting from the _INFO_ log level anyway and we want any Babeltrace +build to always be able to print _INFO_-level logs. + The library's public API provides `bt_logging_get_minimal_level()` to get the configured minimal log level. @@ -1251,7 +1254,7 @@ A _FATAL_-level logging statement should always be followed by * Failed assertion (within `BT_ASSERT()`). * Unsatisfied library precondition (within `BT_ASSERT_PRE()`). * Unsatisfied library postcondition (within `BT_ASSERT_POST()`). -|Almost none: should be executed in production. +|Almost none: always enabled. |_ERROR_ | @@ -1270,7 +1273,7 @@ least exit cleanly. failure to create an empty object (no parameters): most probably failed internally because of an allocation error. * Almost any error in terminal elements: CLI and plugins. -|Almost none: should be executed in production. +|Almost none: always enabled. |_WARN_ | @@ -1286,7 +1289,7 @@ the user's control, so we always log memory errors with an _ERROR_ level * Missing data within something that is expected to have it, but there's an alternative. * Invalid file, but recoverable/fixable. -|Almost none: can be executed in production. +|Almost none: always enabled. |_INFO_ | @@ -1306,8 +1309,7 @@ level is used for sporadic and one-shot events. * An _optional_ subsystem cannot be loaded. * An _optional_ field/datum cannot be found. | -Very little: can be executed in production if _INFO_ level information -is desired. +Very little: always enabled. |_DEBUG_ | diff --git a/configure.ac b/configure.ac index 74b556f7..4a81e5c1 100644 --- a/configure.ac +++ b/configure.ac @@ -386,16 +386,12 @@ AC_ARG_VAR([PLUGINSDIR], [built-in plugins install directory [LIBDIR/babeltrace2 AS_IF([test "x$PLUGINSDIR" = x], [PLUGINSDIR='$(libdir)/babeltrace2/plugins']) # BABELTRACE_MINIMAL_LOG_LEVEL: -AC_ARG_VAR([BABELTRACE_MINIMAL_LOG_LEVEL], [Minimal log level for Babeltrace program, library, and plugins (TRACE, DEBUG (default), INFO, WARN, ERROR, FATAL, or NONE)]) +AC_ARG_VAR([BABELTRACE_MINIMAL_LOG_LEVEL], [Minimal log level for Babeltrace program, library, and plugins (TRACE, DEBUG (default), or INFO)]) AS_IF([test "x$BABELTRACE_MINIMAL_LOG_LEVEL" = x], [BABELTRACE_MINIMAL_LOG_LEVEL="DEBUG"]) AS_IF([test "$BABELTRACE_MINIMAL_LOG_LEVEL" != "TRACE" && \ test "$BABELTRACE_MINIMAL_LOG_LEVEL" != "DEBUG" && \ - test "$BABELTRACE_MINIMAL_LOG_LEVEL" != "INFO" && \ - test "$BABELTRACE_MINIMAL_LOG_LEVEL" != "WARN" && \ - test "$BABELTRACE_MINIMAL_LOG_LEVEL" != "ERROR" && \ - test "$BABELTRACE_MINIMAL_LOG_LEVEL" != "FATAL" && \ - test "$BABELTRACE_MINIMAL_LOG_LEVEL" != "NONE"], - [AC_MSG_ERROR([Invalid BABELTRACE_MINIMAL_LOG_LEVEL value ($BABELTRACE_MINIMAL_LOG_LEVEL): use TRACE, DEBUG, INFO, WARN, ERROR, FATAL, or NONE.])] + test "$BABELTRACE_MINIMAL_LOG_LEVEL" != "INFO"], + [AC_MSG_ERROR([Invalid BABELTRACE_MINIMAL_LOG_LEVEL value ($BABELTRACE_MINIMAL_LOG_LEVEL): use TRACE, DEBUG, or INFO.])] ) AC_DEFINE_UNQUOTED([BT_MINIMAL_LOG_LEVEL], [BT_LOG_$BABELTRACE_MINIMAL_LOG_LEVEL], [Minimal log level]) -- 2.34.1