From aa37512cfaa07ebb389c1bbda1a74b83c0f73b7f Mon Sep 17 00:00:00 2001 From: Simon Marchi Date: Wed, 3 Apr 2024 13:12:05 -0400 Subject: [PATCH] cpp-common/bt2c: add `BT_CPPLOGE_APPEND_CAUSE_SPEC` Add the `BT_CPPLOGE_APPEND_CAUSE_SPEC` macro, allowing to log an error, append a cause, but not throw. Change-Id: I6a09dd8775a85202c2049e902ab9edfcbd32080b Signed-off-by: Simon Marchi Reviewed-on: https://review.lttng.org/c/babeltrace/+/12231 Tested-by: jenkins Reviewed-by: Philippe Proulx --- src/cpp-common/bt2c/logging.hpp | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/src/cpp-common/bt2c/logging.hpp b/src/cpp-common/bt2c/logging.hpp index 9d72f3dc..838c555b 100644 --- a/src/cpp-common/bt2c/logging.hpp +++ b/src/cpp-common/bt2c/logging.hpp @@ -839,6 +839,33 @@ private: #define BT_CPPLOGF_ERRNO_STR(_init_msg, _msg) \ BT_CPPLOGF_ERRNO_STR_SPEC(_BT_CPPLOG_DEF_LOGGER, (_init_msg), (_msg)) +/* + * Calls log() on `_logger` with the `Error` level to log an error and + * append a cause to the error of the current thread. + */ +#define BT_CPPLOGE_APPEND_CAUSE_SPEC(_logger, _fmt, ...) \ + (_logger).log(__FILE__, __func__, __LINE__, (_fmt), \ + ##__VA_ARGS__) + +/* + * BT_CPPLOGE_APPEND_CAUSE_SPEC() using the default logger. + */ +#define BT_CPPLOGE_APPEND_CAUSE(_fmt, ...) \ + BT_CPPLOGE_APPEND_CAUSE_SPEC(_BT_CPPLOG_DEF_LOGGER, (_fmt), ##__VA_ARGS__) + +/* + * Calls logStr() on `_logger` with the `Error` level to log an error and + * append a cause to the error of the current thread. + */ +#define BT_CPPLOGE_STR_APPEND_CAUSE_SPEC(_logger, _msg) \ + (_logger).logStr(__FILE__, __func__, __LINE__, (_msg)) + +/* + * BT_CPPLOGE_STR_APPEND_CAUSE_SPEC() using the default logger. + */ +#define BT_CPPLOGE_STR_APPEND_CAUSE(_msg) \ + BT_CPPLOGE_STR_APPEND_CAUSE_SPEC(_BT_CPPLOG_DEF_LOGGER, (_msg)) + /* * Calls logErrorAndThrow() on `_logger` to log an error, append a cause * to the error of the current thread, and throw an instance of -- 2.34.1