From f1bf423f6904634a76c665cbb0aa3d131851aff9 Mon Sep 17 00:00:00 2001 From: Ayaz Salikhov Date: Mon, 8 Sep 2025 22:50:08 +0100 Subject: [PATCH] fix: Remove global static loggers (#2557) --- src/data/BackendInterface.cpp | 38 +++++++++++++++-------------------- src/data/BackendInterface.hpp | 1 + src/rpc/RPCHelpers.cpp | 22 ++++++++++---------- 3 files changed, 28 insertions(+), 33 deletions(-) diff --git a/src/data/BackendInterface.cpp b/src/data/BackendInterface.cpp index c6ffbb0be..2ca133a84 100644 --- a/src/data/BackendInterface.cpp +++ b/src/data/BackendInterface.cpp @@ -21,7 +21,6 @@ #include "data/Types.hpp" #include "util/Assert.hpp" -#include "util/log/Logger.hpp" #include #include @@ -43,11 +42,6 @@ #include #include -// local to compilation unit loggers -namespace { -util::Logger gLog{"Backend"}; -} // namespace - /** * @brief This namespace implements the data access layer and related components. * @@ -58,10 +52,10 @@ namespace data { bool BackendInterface::finishWrites(std::uint32_t const ledgerSequence) { - LOG(gLog.debug()) << "Want finish writes for " << ledgerSequence; + LOG(log_.debug()) << "Want finish writes for " << ledgerSequence; auto commitRes = doFinishWrites(); if (commitRes) { - LOG(gLog.debug()) << "Successfully committed. Updating range now to " << ledgerSequence; + LOG(log_.debug()) << "Successfully committed. Updating range now to " << ledgerSequence; updateRange(ledgerSequence); } return commitRes; @@ -89,15 +83,15 @@ BackendInterface::fetchLedgerObject( { auto obj = cache_.get().get(key, sequence); if (obj) { - LOG(gLog.trace()) << "Cache hit - " << ripple::strHex(key); + LOG(log_.trace()) << "Cache hit - " << ripple::strHex(key); return obj; } auto dbObj = doFetchLedgerObject(key, sequence, yield); if (!dbObj) { - LOG(gLog.trace()) << "Missed cache and missed in db"; + LOG(log_.trace()) << "Missed cache and missed in db"; } else { - LOG(gLog.trace()) << "Missed cache but found in db"; + LOG(log_.trace()) << "Missed cache but found in db"; } return dbObj; } @@ -111,7 +105,7 @@ BackendInterface::fetchLedgerObjectSeq( { auto seq = doFetchLedgerObjectSeq(key, sequence, yield); if (!seq) - LOG(gLog.trace()) << "Missed in db"; + LOG(log_.trace()) << "Missed in db"; return seq; } @@ -133,7 +127,7 @@ BackendInterface::fetchLedgerObjects( misses.push_back(keys[i]); } } - LOG(gLog.trace()) << "Cache hits = " << keys.size() - misses.size() << " - cache misses = " << misses.size(); + LOG(log_.trace()) << "Cache hits = " << keys.size() - misses.size() << " - cache misses = " << misses.size(); if (!misses.empty()) { auto objs = doFetchLedgerObjects(misses, sequence, yield); @@ -158,9 +152,9 @@ BackendInterface::fetchSuccessorKey( { auto succ = cache_.get().getSuccessor(key, ledgerSequence); if (succ) { - LOG(gLog.trace()) << "Cache hit - " << ripple::strHex(key); + LOG(log_.trace()) << "Cache hit - " << ripple::strHex(key); } else { - LOG(gLog.trace()) << "Cache miss - " << ripple::strHex(key); + LOG(log_.trace()) << "Cache miss - " << ripple::strHex(key); } return succ ? succ->key : doFetchSuccessorKey(key, ledgerSequence, yield); } @@ -210,7 +204,7 @@ BackendInterface::fetchBookOffers( numSucc++; succMillis += getMillis(mid2 - mid1); if (!offerDir || offerDir->key >= bookEnd) { - LOG(gLog.trace()) << "offerDir.has_value() " << offerDir.has_value() << " breaking"; + LOG(log_.trace()) << "offerDir.has_value() " << offerDir.has_value() << " breaking"; break; } uTipIndex = offerDir->key; @@ -223,7 +217,7 @@ BackendInterface::fetchBookOffers( keys.insert(keys.end(), indexes.begin(), indexes.end()); auto next = sle.getFieldU64(ripple::sfIndexNext); if (next == 0u) { - LOG(gLog.trace()) << "Next is empty. breaking"; + LOG(log_.trace()) << "Next is empty. breaking"; break; } auto nextKey = ripple::keylet::page(uTipIndex, next); @@ -238,13 +232,13 @@ BackendInterface::fetchBookOffers( auto mid = std::chrono::system_clock::now(); auto objs = fetchLedgerObjects(keys, ledgerSequence, yield); for (size_t i = 0; i < keys.size() && i < limit; ++i) { - LOG(gLog.trace()) << "Key = " << ripple::strHex(keys[i]) << " blob = " << ripple::strHex(objs[i]) + LOG(log_.trace()) << "Key = " << ripple::strHex(keys[i]) << " blob = " << ripple::strHex(objs[i]) << " ledgerSequence = " << ledgerSequence; ASSERT(!objs[i].empty(), "Ledger object can't be empty"); page.offers.push_back({keys[i], objs[i]}); } auto end = std::chrono::system_clock::now(); - LOG(gLog.debug()) << "Fetching " << std::to_string(keys.size()) << " offers took " + LOG(log_.debug()) << "Fetching " << std::to_string(keys.size()) << " offers took " << std::to_string(getMillis(mid - begin)) << " milliseconds. Fetching next dir took " << std::to_string(succMillis) << " milliseconds. Fetched next dir " << std::to_string(numSucc) << " times" @@ -341,13 +335,13 @@ BackendInterface::fetchLedgerPage( if (!objects[i].empty()) { page.objects.push_back({keys[i], std::move(objects[i])}); } else if (!outOfOrder) { - LOG(gLog.error()) << "Deleted or non-existent object in successor table. key = " << ripple::strHex(keys[i]) + LOG(log_.error()) << "Deleted or non-existent object in successor table. key = " << ripple::strHex(keys[i]) << " - seq = " << ledgerSequence; std::stringstream msg; for (size_t j = 0; j < objects.size(); ++j) { msg << " - " << ripple::strHex(keys[j]); } - LOG(gLog.error()) << msg.str(); + LOG(log_.error()) << msg.str(); if (corruptionDetector_.has_value()) corruptionDetector_->onCorruptionDetected(); @@ -368,7 +362,7 @@ BackendInterface::fetchFees(std::uint32_t const seq, boost::asio::yield_context auto bytes = fetchLedgerObject(key, seq, yield); if (!bytes) { - LOG(gLog.error()) << "Could not find fees"; + LOG(log_.error()) << "Could not find fees"; return {}; } diff --git a/src/data/BackendInterface.hpp b/src/data/BackendInterface.hpp index 047e8c806..898552f9e 100644 --- a/src/data/BackendInterface.hpp +++ b/src/data/BackendInterface.hpp @@ -138,6 +138,7 @@ synchronousAndRetryOnTimeout(FnType&& func) */ class BackendInterface { protected: + util::Logger log_{"Backend"}; mutable std::shared_mutex rngMtx_; std::optional range_; std::reference_wrapper cache_; diff --git a/src/rpc/RPCHelpers.cpp b/src/rpc/RPCHelpers.cpp index 2f7eb09c9..a92919f35 100644 --- a/src/rpc/RPCHelpers.cpp +++ b/src/rpc/RPCHelpers.cpp @@ -102,11 +102,6 @@ #include #include -// local to compilation unit loggers -namespace { -util::Logger gLog{"RPC"}; -} // namespace - namespace rpc { std::optional @@ -209,6 +204,8 @@ accountFromStringStrict(std::string const& account) std::pair, std::shared_ptr> deserializeTxPlusMeta(data::TransactionAndMetadata const& blobs) { + static util::Logger const log{"RPC"}; // NOLINT(readability-identifier-naming) + try { std::pair, std::shared_ptr> result; { @@ -225,9 +222,9 @@ deserializeTxPlusMeta(data::TransactionAndMetadata const& blobs) std::stringstream meta; std::ranges::copy(blobs.transaction, std::ostream_iterator(txn)); std::ranges::copy(blobs.metadata, std::ostream_iterator(meta)); - LOG(gLog.error()) << "Failed to deserialize transaction. txn = " << txn.str() << " - meta = " << meta.str() - << " txn length = " << std::to_string(blobs.transaction.size()) - << " meta length = " << std::to_string(blobs.metadata.size()); + LOG(log.error()) << "Failed to deserialize transaction. txn = " << txn.str() << " - meta = " << meta.str() + << " txn length = " << std::to_string(blobs.transaction.size()) + << " meta length = " << std::to_string(blobs.metadata.size()); throw e; } } @@ -804,7 +801,9 @@ traverseOwnedNodes( } auto end = std::chrono::system_clock::now(); - LOG(gLog.debug()) << fmt::format( + static util::Logger const log{"RPC"}; // NOLINT(readability-identifier-naming) + + LOG(log.debug()) << fmt::format( "Time loading owned directories: {} milliseconds, entries size: {}", std::chrono::duration_cast(end - start).count(), keys.size() @@ -812,7 +811,7 @@ traverseOwnedNodes( auto [objects, timeDiff] = util::timed([&]() { return backend.fetchLedgerObjects(keys, sequence, yield); }); - LOG(gLog.debug()) << "Time loading owned entries: " << timeDiff << " milliseconds"; + LOG(log.debug()) << "Time loading owned entries: " << timeDiff << " milliseconds"; for (auto i = 0u; i < objects.size(); ++i) { ripple::SerialIter it{objects[i].data(), objects[i].size()}; @@ -1300,7 +1299,8 @@ postProcessOrderBook( jsonOffers.push_back(offerJson); } catch (std::exception const& e) { - LOG(gLog.error()) << "caught exception: " << e.what(); + util::Logger const log{"RPC"}; + LOG(log.error()) << "caught exception: " << e.what(); } } return jsonOffers;