aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorWladimir J. van der Laan <laanwj@gmail.com>2018-09-13 09:43:30 +0200
committerWladimir J. van der Laan <laanwj@gmail.com>2018-09-13 09:45:22 +0200
commit1bfcc0696c4638e1323ab7529f28b604d713067b (patch)
tree4a950ecebe2071c567bff82f9344b9be83c0a54c /src
parent8f464549c46db2954d7b64d1feb200eb35f2e7e8 (diff)
parentfae3fbd61a89c7a35bc0eda91b1df61371dc0936 (diff)
Merge #14209: logging: Replace LogPrint macros with regular functions
fae3fbd61a89c7a35bc0eda91b1df61371dc0936 logging: Replace LogPrint macros with regular functions (MarcoFalke) Pull request description: It is not possible to run the full test suite when configured with `--enable-lcov`, since logging is disabled currently so that "unnecessary branches are not analyzed". (See c8914b9dbbf6106dac3c62769f7ce3bacd8fbf9b) Fix this instead by replacing the macros with functions. Tree-SHA512: 101aa4f4a3ffcefc38faf70c9d3deb5fc63e0b11ca54a164d0463931c79eaf53ab0b0c6ae92a45355574e3b1d2c32233874a6b24293e7a09d188fc6698e212a5
Diffstat (limited to 'src')
-rw-r--r--src/logging.h55
1 files changed, 22 insertions, 33 deletions
diff --git a/src/logging.h b/src/logging.h
index 6400b131c2..0c8e7f5291 100644
--- a/src/logging.h
+++ b/src/logging.h
@@ -125,42 +125,31 @@ std::vector<CLogCategoryActive> ListActiveLogCategories();
/** Return true if str parses as a log category and set the flag */
bool GetLogCategory(BCLog::LogFlags& flag, const std::string& str);
-/** Get format string from VA_ARGS for error reporting */
-template<typename... Args> std::string FormatStringFromLogArgs(const char *fmt, const Args&... args) { return fmt; }
-
-static inline void MarkUsed() {}
-template<typename T, typename... Args> static inline void MarkUsed(const T& t, const Args&... args)
-{
- (void)t;
- MarkUsed(args...);
-}
-
// Be conservative when using LogPrintf/error or other things which
// unconditionally log to debug.log! It should not be the case that an inbound
// peer can fill up a user's disk with debug.log entries.
-#ifdef USE_COVERAGE
-#define LogPrintf(...) do { MarkUsed(__VA_ARGS__); } while(0)
-#define LogPrint(category, ...) do { MarkUsed(__VA_ARGS__); } while(0)
-#else
-#define LogPrintf(...) do { \
- if (g_logger->Enabled()) { \
- std::string _log_msg_; /* Unlikely name to avoid shadowing variables */ \
- try { \
- _log_msg_ = tfm::format(__VA_ARGS__); \
- } catch (tinyformat::format_error &fmterr) { \
- /* Original format string will have newline so don't add one here */ \
- _log_msg_ = "Error \"" + std::string(fmterr.what()) + "\" while formatting log message: " + FormatStringFromLogArgs(__VA_ARGS__); \
- } \
- g_logger->LogPrintStr(_log_msg_); \
- } \
-} while(0)
-
-#define LogPrint(category, ...) do { \
- if (LogAcceptCategory((category))) { \
- LogPrintf(__VA_ARGS__); \
- } \
-} while(0)
-#endif
+template <typename... Args>
+static inline void LogPrintf(const char* fmt, const Args&... args)
+{
+ if (g_logger->Enabled()) {
+ std::string log_msg;
+ try {
+ log_msg = tfm::format(fmt, args...);
+ } catch (tinyformat::format_error& fmterr) {
+ /* Original format string will have newline so don't add one here */
+ log_msg = "Error \"" + std::string(fmterr.what()) + "\" while formatting log message: " + fmt;
+ }
+ g_logger->LogPrintStr(log_msg);
+ }
+}
+
+template <typename... Args>
+static inline void LogPrint(const BCLog::LogFlags& category, const Args&... args)
+{
+ if (LogAcceptCategory((category))) {
+ LogPrintf(args...);
+ }
+}
#endif // BITCOIN_LOGGING_H