This is an automated email from the ASF dual-hosted git repository. swebb2066 pushed a commit to branch try_default_configurator_once in repository https://gitbox.apache.org/repos/asf/logging-log4cxx.git
commit 33e7d0523477f6f400e15309fa584446111f18db Author: Stephen Webb <[email protected]> AuthorDate: Mon Sep 1 22:01:05 2025 +1000 Attempt default configuration at most once on application startup --- src/main/cpp/hierarchy.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/main/cpp/hierarchy.cpp b/src/main/cpp/hierarchy.cpp index bbd8907a..cb42ffea 100644 --- a/src/main/cpp/hierarchy.cpp +++ b/src/main/cpp/hierarchy.cpp @@ -64,6 +64,8 @@ struct Hierarchy::HierarchyPrivate std::vector<AppenderPtr> allAppenders; mutable std::mutex listenerMutex; + + const char* alreadyTriedMethod{ NULL }; }; IMPLEMENT_LOG4CXX_OBJECT(Hierarchy) @@ -302,10 +304,10 @@ bool Hierarchy::isDisabled(int level) const void Hierarchy::ensureIsConfigured(std::function<void()> configurator) { std::lock_guard<std::mutex> lock(m_priv->configuredMutex); - if (!m_priv->configured) + if (!m_priv->configured && m_priv->alreadyTriedMethod != configurator.target_type().name()) { configurator(); - m_priv->configured = true; + m_priv->alreadyTriedMethod = configurator.target_type().name(); } }
