You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nifi.apache.org by lo...@apache.org on 2026/02/24 18:57:38 UTC
(nifi-minifi-cpp) 03/05: MINIFICPP-2256 Remove LoggerConfiguration::newInstance
This is an automated email from the ASF dual-hosted git repository.
lordgamez pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/nifi-minifi-cpp.git
commit ebc89c18690b15b5b5e61acb5be1c0389b38f6c8
Author: Ferenc Gerlits <fg...@gmail.com>
AuthorDate: Mon Jan 19 13:00:58 2026 +0100
MINIFICPP-2256 Remove LoggerConfiguration::newInstance
Signed-off-by: Gabor Gyimesi <ga...@gmail.com>
This closes #2102
---
.../include/core/logging/LoggerConfiguration.h | 9 +--
libminifi/test/libtest/unit/TestBase.cpp | 7 +-
libminifi/test/unit/LoggerTests.cpp | 84 +++++++++++-----------
3 files changed, 47 insertions(+), 53 deletions(-)
diff --git a/libminifi/include/core/logging/LoggerConfiguration.h b/libminifi/include/core/logging/LoggerConfiguration.h
index 4b4d6eb63..f9721c73f 100644
--- a/libminifi/include/core/logging/LoggerConfiguration.h
+++ b/libminifi/include/core/logging/LoggerConfiguration.h
@@ -71,15 +71,9 @@ class LoggerConfiguration {
friend class ::LogTestController;
public:
- /**
- * Gets the current log configuration
- */
+ LoggerConfiguration(); // used in some tests only
static LoggerConfiguration& getConfiguration();
- static std::unique_ptr<LoggerConfiguration> newInstance() {
- return std::unique_ptr<LoggerConfiguration>(new LoggerConfiguration()); // NOLINT(modernize-make-unique, cppcoreguidelines-owning-memory
- }
-
void disableLogging() {
controller_->setEnabled(false);
}
@@ -163,7 +157,6 @@ class LoggerConfiguration {
static std::shared_ptr<spdlog::sinks::rotating_file_sink_mt> getRotatingFileSink(const std::string& appender_key, const std::shared_ptr<LoggerProperties>& properties);
- LoggerConfiguration();
internal::CompressionManager compression_manager_;
std::shared_ptr<internal::LoggerNamespace> root_namespace_;
diff --git a/libminifi/test/libtest/unit/TestBase.cpp b/libminifi/test/libtest/unit/TestBase.cpp
index 0cf593b34..b4a58191f 100644
--- a/libminifi/test/libtest/unit/TestBase.cpp
+++ b/libminifi/test/libtest/unit/TestBase.cpp
@@ -158,8 +158,9 @@ void LogTestController::reset() {
setLevel(name, spdlog::level::err);
}
modified_loggers.clear();
- if (config)
- config = logging::LoggerConfiguration::newInstance();
+ if (config) {
+ config = std::make_unique<logging::LoggerConfiguration>();
+ }
my_properties_ = std::make_shared<logging::LoggerProperties>("");
clear();
init(nullptr);
@@ -195,7 +196,7 @@ void LogTestController::init(const std::shared_ptr<logging::LoggerProperties>& l
logging::LoggerConfiguration::getConfiguration().initialize(my_properties_);
logger_ = logging::LoggerConfiguration::getConfiguration().getLogger(minifi::core::className<LogTestController>());
} else {
- config = logging::LoggerConfiguration::newInstance();
+ config = std::make_unique<logging::LoggerConfiguration>();
// create for test purposes. most tests use the main logging factory, but this exists to test the logging
// framework itself.
config->initialize(my_properties_);
diff --git a/libminifi/test/unit/LoggerTests.cpp b/libminifi/test/unit/LoggerTests.cpp
index 1326c7ddf..b2276600d 100644
--- a/libminifi/test/unit/LoggerTests.cpp
+++ b/libminifi/test/unit/LoggerTests.cpp
@@ -228,7 +228,7 @@ class LoggerTestAccessor {
};
TEST_CASE("Test Compression", "[ttl9]") {
- auto log_config = logging::LoggerConfiguration::newInstance();
+ logging::LoggerConfiguration log_config;
auto properties = std::make_shared<logging::LoggerProperties>("");
std::string className;
SECTION("Using root logger") {
@@ -241,38 +241,38 @@ TEST_CASE("Test Compression", "[ttl9]") {
properties->set("appender.null", "null");
properties->set("logger." + className, "INFO,null");
}
- log_config->initialize(properties);
- auto logger = log_config->getLogger(className);
+ log_config.initialize(properties);
+ auto logger = log_config.getLogger(className);
logger->log_error("Hi there");
- REQUIRE(LoggerTestAccessor::waitForCompressionToHappen(*log_config));
- auto compressed_logs = LoggerTestAccessor::getCompressedLogs(*log_config);
+ REQUIRE(LoggerTestAccessor::waitForCompressionToHappen(log_config));
+ auto compressed_logs = LoggerTestAccessor::getCompressedLogs(log_config);
REQUIRE(compressed_logs.size() == 1);
auto logs = decompress(compressed_logs[0]);
REQUIRE(logs.find("Hi there") != std::string::npos);
}
TEST_CASE("Test Compression cache overflow is discarded intermittently", "[ttl10]") {
- auto log_config = logging::LoggerConfiguration::newInstance();
+ logging::LoggerConfiguration log_config;
auto properties = std::make_shared<logging::LoggerProperties>("");
properties->set(logging::internal::CompressionManager::compression_cached_log_max_size_, "10 KB");
- LoggerTestAccessor::setCompressionCacheSegmentSize(*log_config, 1_KiB);
+ LoggerTestAccessor::setCompressionCacheSegmentSize(log_config, 1_KiB);
std::string className = "CompressionTestCacheCleaned";
// by default the root logger is OFF
properties->set("logger.root", "INFO");
- log_config->initialize(properties);
- auto logger = log_config->getLogger(className);
+ log_config.initialize(properties);
+ auto logger = log_config.getLogger(className);
for (size_t idx = 0; idx < 10000; ++idx) {
logger->log_error("Hi there");
}
bool cache_shrunk = minifi::test::utils::verifyEventHappenedInPollTime(std::chrono::seconds{1}, [&] {
- return LoggerTestAccessor::getUncompressedSize(*log_config) <= 10_KiB;
+ return LoggerTestAccessor::getUncompressedSize(log_config) <= 10_KiB;
});
REQUIRE(cache_shrunk);
}
TEST_CASE("Setting either properties to 0 disables in-memory compressed logs", "[ttl11]") {
- auto log_config = logging::LoggerConfiguration::newInstance();
+ logging::LoggerConfiguration log_config;
auto properties = std::make_shared<logging::LoggerProperties>("");
bool is_empty = false;
SECTION("Cached log size is set to 0") {
@@ -289,26 +289,26 @@ TEST_CASE("Setting either properties to 0 disables in-memory compressed logs", "
}
// by default the root logger is OFF
properties->set("logger.root", "INFO");
- log_config->initialize(properties);
- auto logger = log_config->getLogger("DisableCompressionTestLogger");
+ log_config.initialize(properties);
+ auto logger = log_config.getLogger("DisableCompressionTestLogger");
logger->log_error("Hi there");
- REQUIRE(LoggerTestAccessor::waitForCompressionToHappen(*log_config));
- auto compressed_logs = LoggerTestAccessor::getCompressedLogs(*log_config);
+ REQUIRE(LoggerTestAccessor::waitForCompressionToHappen(log_config));
+ auto compressed_logs = LoggerTestAccessor::getCompressedLogs(log_config);
REQUIRE(compressed_logs.empty() == is_empty);
}
TEST_CASE("Setting max log entry length property trims long log entries", "[ttl12]") {
- auto log_config = logging::LoggerConfiguration::newInstance();
+ logging::LoggerConfiguration log_config;
auto properties = std::make_shared<logging::LoggerProperties>("");
properties->set("max.log.entry.length", "2");
properties->set("logger.root", "INFO");
- log_config->initialize(properties);
- auto logger = log_config->getLogger("SetMaxLogEntryLengthTestLogger");
+ log_config.initialize(properties);
+ auto logger = log_config.getLogger("SetMaxLogEntryLengthTestLogger");
logger->log_error("Hi there");
- REQUIRE(LoggerTestAccessor::waitForCompressionToHappen(*log_config));
- auto compressed_logs = LoggerTestAccessor::getCompressedLogs(*log_config);
+ REQUIRE(LoggerTestAccessor::waitForCompressionToHappen(log_config));
+ auto compressed_logs = LoggerTestAccessor::getCompressedLogs(log_config);
REQUIRE(compressed_logs.size() == 1);
auto logs = decompress(compressed_logs[0]);
REQUIRE(logs.find("Hi ") == std::string::npos);
@@ -316,16 +316,16 @@ TEST_CASE("Setting max log entry length property trims long log entries", "[ttl1
}
TEST_CASE("Setting max log entry length property trims long formatted log entries", "[ttl13]") {
- auto log_config = logging::LoggerConfiguration::newInstance();
+ logging::LoggerConfiguration log_config;
auto properties = std::make_shared<logging::LoggerProperties>("");
properties->set("max.log.entry.length", "2");
properties->set("logger.root", "INFO");
- log_config->initialize(properties);
- auto logger = log_config->getLogger("SetMaxLogEntryLengthInFormattedTestLogger");
+ log_config.initialize(properties);
+ auto logger = log_config.getLogger("SetMaxLogEntryLengthInFormattedTestLogger");
logger->log_error("Hi there {}", "John");
- REQUIRE(LoggerTestAccessor::waitForCompressionToHappen(*log_config));
- auto compressed_logs = LoggerTestAccessor::getCompressedLogs(*log_config);
+ REQUIRE(LoggerTestAccessor::waitForCompressionToHappen(log_config));
+ auto compressed_logs = LoggerTestAccessor::getCompressedLogs(log_config);
REQUIRE(compressed_logs.size() == 1);
auto logs = decompress(compressed_logs[0]);
REQUIRE(logs.find("Hi ") == std::string::npos);
@@ -333,18 +333,18 @@ TEST_CASE("Setting max log entry length property trims long formatted log entrie
}
TEST_CASE("Setting max log entry length to a size larger than the internal buffer size", "[ttl14]") {
- auto log_config = logging::LoggerConfiguration::newInstance();
+ logging::LoggerConfiguration log_config;
auto properties = std::make_shared<logging::LoggerProperties>("");
properties->set("max.log.entry.length", "1500");
properties->set("logger.root", "INFO");
- log_config->initialize(properties);
- auto logger = log_config->getLogger("SetMaxLogEntryLengthToLargerThanBufferSizeTestLogger");
+ log_config.initialize(properties);
+ auto logger = log_config.getLogger("SetMaxLogEntryLengthToLargerThanBufferSizeTestLogger");
std::string log(2000, 'a');
std::string expected_log(1500, 'a');
logger->log_error("{}", log);
- REQUIRE(LoggerTestAccessor::waitForCompressionToHappen(*log_config));
- auto compressed_logs = LoggerTestAccessor::getCompressedLogs(*log_config);
+ REQUIRE(LoggerTestAccessor::waitForCompressionToHappen(log_config));
+ auto compressed_logs = LoggerTestAccessor::getCompressedLogs(log_config);
REQUIRE(compressed_logs.size() == 1);
auto logs = decompress(compressed_logs[0]);
REQUIRE(logs.find(log) == std::string::npos);
@@ -352,7 +352,7 @@ TEST_CASE("Setting max log entry length to a size larger than the internal buffe
}
TEST_CASE("Setting max log entry length to unlimited results in unlimited log entry size", "[ttl15]") {
- auto log_config = logging::LoggerConfiguration::newInstance();
+ logging::LoggerConfiguration log_config;
auto properties = std::make_shared<logging::LoggerProperties>("");
std::string_view logger_name;
SECTION("Use unlimited value") {
@@ -364,13 +364,13 @@ TEST_CASE("Setting max log entry length to unlimited results in unlimited log en
logger_name = "SetMaxLogEntryLengthTo-1TestLogger";
}
properties->set("logger.root", "INFO");
- log_config->initialize(properties);
- auto logger = log_config->getLogger(logger_name);
+ log_config.initialize(properties);
+ auto logger = log_config.getLogger(logger_name);
std::string log(5000, 'a');
logger->log_error("{}", log);
- REQUIRE(LoggerTestAccessor::waitForCompressionToHappen(*log_config));
- auto compressed_logs = LoggerTestAccessor::getCompressedLogs(*log_config);
+ REQUIRE(LoggerTestAccessor::waitForCompressionToHappen(log_config));
+ auto compressed_logs = LoggerTestAccessor::getCompressedLogs(log_config);
REQUIRE(compressed_logs.size() == 1);
auto logs = decompress(compressed_logs[0]);
REQUIRE(logs.find(log) != std::string::npos);
@@ -417,22 +417,22 @@ std::vector<std::string> generateRandomStrings() {
}
TEST_CASE("Test sending multiple segments at once", "[ttl16]") {
- auto log_config = logging::LoggerConfiguration::newInstance();
- LoggerTestAccessor::setCompressionCompressedSegmentSize(*log_config, 100);
- LoggerTestAccessor::setCompressionCacheSegmentSize(*log_config, 100);
+ logging::LoggerConfiguration log_config;
+ LoggerTestAccessor::setCompressionCompressedSegmentSize(log_config, 100);
+ LoggerTestAccessor::setCompressionCacheSegmentSize(log_config, 100);
auto properties = std::make_shared<logging::LoggerProperties>("");
// by default the root logger is OFF
properties->set("logger.root", "INFO");
- log_config->initialize(properties);
- auto logger = log_config->getLogger("CompressionTestMultiSegment");
+ log_config.initialize(properties);
+ auto logger = log_config.getLogger("CompressionTestMultiSegment");
const auto random_strings = generateRandomStrings();
for (const auto& random_string : random_strings) {
logger->log_error("{}", random_string);
}
- REQUIRE(LoggerTestAccessor::waitForCompressionToHappen(*log_config));
- auto compressed_logs = LoggerTestAccessor::getCompressedLogs(*log_config);
+ REQUIRE(LoggerTestAccessor::waitForCompressionToHappen(log_config));
+ auto compressed_logs = LoggerTestAccessor::getCompressedLogs(log_config);
REQUIRE(compressed_logs.size() == random_strings.size());
for (size_t i = 0; i < compressed_logs.size(); ++i) {
auto logs = decompress(compressed_logs[i]);