You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by sw...@apache.org on 2025/09/01 12:02:11 UTC
(logging-log4cxx) 01/01: Attempt default configuration at most once on application startup
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 <sw...@gmail.com>
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();
}
}