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 2022/11/12 05:38:06 UTC

[logging-log4cxx] branch next_stable updated: Prevent MSVC warning messages (#150)

This is an automated email from the ASF dual-hosted git repository.

swebb2066 pushed a commit to branch next_stable
in repository https://gitbox.apache.org/repos/asf/logging-log4cxx.git


The following commit(s) were added to refs/heads/next_stable by this push:
     new 0e6747be Prevent MSVC warning messages (#150)
0e6747be is described below

commit 0e6747beaaf9fb0a495d97565fe5ae6c2796d312
Author: Stephen Webb <st...@ieee.org>
AuthorDate: Sat Nov 12 16:38:01 2022 +1100

    Prevent MSVC warning messages (#150)
---
 src/main/cpp/hierarchy.cpp                      |  5 ++---
 src/main/cpp/logmanager.cpp                     | 10 ++++------
 src/main/cpp/rollingpolicybase.cpp              |  4 ++--
 src/main/include/log4cxx/hierarchy.h            |  8 +++-----
 src/main/include/log4cxx/spi/loggerrepository.h |  5 +++--
 src/test/cpp/abts.cpp                           |  7 +++----
 6 files changed, 17 insertions(+), 22 deletions(-)

diff --git a/src/main/cpp/hierarchy.cpp b/src/main/cpp/hierarchy.cpp
index 98c4ba6c..e9a63016 100644
--- a/src/main/cpp/hierarchy.cpp
+++ b/src/main/cpp/hierarchy.cpp
@@ -31,7 +31,6 @@
 	#define LOG4CXX 1
 #endif
 #include <log4cxx/helpers/aprinitializer.h>
-#include <log4cxx/defaultconfigurator.h>
 #include <log4cxx/spi/rootlogger.h>
 #include <mutex>
 #include <apr.h>
@@ -300,12 +299,12 @@ bool Hierarchy::isDisabled(int level) const
 	return m_priv->thresholdInt > level;
 }
 
-void Hierarchy::autoConfigure()
+void Hierarchy::ensureIsConfigured(std::function<void()> configurator)
 {
 	std::unique_lock<std::mutex> lock(m_priv->configuredMutex);
 	if (!m_priv->configured)
 	{
-		DefaultConfigurator::configure(shared_from_this());
+		configurator();
 		m_priv->configured = true;
 	}
 }
diff --git a/src/main/cpp/logmanager.cpp b/src/main/cpp/logmanager.cpp
index e21f8bbe..08a4903e 100644
--- a/src/main/cpp/logmanager.cpp
+++ b/src/main/cpp/logmanager.cpp
@@ -21,6 +21,7 @@
 #endif
 
 #include <log4cxx/logmanager.h>
+#include <log4cxx/defaultconfigurator.h>
 #include <log4cxx/spi/defaultrepositoryselector.h>
 #include <log4cxx/hierarchy.h>
 #include <log4cxx/spi/rootlogger.h>
@@ -86,8 +87,7 @@ LoggerPtr LogManager::getRootLogger()
 {
 	// Delegate the actual manufacturing of the logger to the logger repository.
 	auto r = getLoggerRepository();
-	if (!r->isConfigured())
-		r->autoConfigure();
+	r->ensureIsConfigured(std::bind(DefaultConfigurator::configure, r));
 	return r->getRootLogger();
 }
 
@@ -97,8 +97,7 @@ Retrieve the appropriate Logger instance.
 LoggerPtr LogManager::getLoggerLS(const LogString& name)
 {
 	auto r = getLoggerRepository();
-	if (!r->isConfigured())
-		r->autoConfigure();
+	r->ensureIsConfigured(std::bind(DefaultConfigurator::configure, r));
 	return r->getLogger(name);
 }
 
@@ -110,8 +109,7 @@ LoggerPtr LogManager::getLoggerLS(const LogString& name,
 {
 	// Delegate the actual manufacturing of the logger to the logger repository.
 	auto r = getLoggerRepository();
-	if (!r->isConfigured())
-		r->autoConfigure();
+	r->ensureIsConfigured(std::bind(DefaultConfigurator::configure, r));
 	return r->getLogger(name, factory);
 }
 
diff --git a/src/main/cpp/rollingpolicybase.cpp b/src/main/cpp/rollingpolicybase.cpp
index c22a36a4..2d851ee1 100644
--- a/src/main/cpp/rollingpolicybase.cpp
+++ b/src/main/cpp/rollingpolicybase.cpp
@@ -126,9 +126,9 @@ void RollingPolicyBase::formatFileName(
 		converterIter != m_priv->patternConverters.end();
 		converterIter++, formatterIter++)
 	{
-		int startField = toAppendTo.length();
+		auto startField = toAppendTo.length();
 		(*converterIter)->format(obj, toAppendTo, pool);
-		(*formatterIter)->format(startField, toAppendTo);
+		(*formatterIter)->format((int)startField, toAppendTo);
 	}
 }
 
diff --git a/src/main/include/log4cxx/hierarchy.h b/src/main/include/log4cxx/hierarchy.h
index 153e2e62..e4d06fde 100644
--- a/src/main/include/log4cxx/hierarchy.h
+++ b/src/main/include/log4cxx/hierarchy.h
@@ -52,9 +52,7 @@ then it creates a provision node for the ancestor and adds itself
 to the provision node. Other descendants of the same ancestor add
 themselves to the previously created provision node.
 */
-class LOG4CXX_EXPORT Hierarchy :
-	public virtual spi::LoggerRepository,
-	public std::enable_shared_from_this<Hierarchy>
+class LOG4CXX_EXPORT Hierarchy : public spi::LoggerRepository
 {
 	private:
 		LOG4CXX_DECLARE_PRIVATE_MEMBER_PTR(HierarchyPrivate, m_priv)
@@ -79,9 +77,9 @@ class LOG4CXX_EXPORT Hierarchy :
 		void addHierarchyEventListener(const spi::HierarchyEventListenerPtr& listener) override;
 
 		/**
-		 * Call DefaultConfigurator::configure if not yet configured.
+		 * Call \c configurator if not yet configured.
 		 */
-		void autoConfigure() override;
+		void ensureIsConfigured(std::function<void()> configurator) override;
 
 		/**
 		This call will clear all logger definitions from the internal
diff --git a/src/main/include/log4cxx/spi/loggerrepository.h b/src/main/include/log4cxx/spi/loggerrepository.h
index e76bf16a..baf16e12 100644
--- a/src/main/include/log4cxx/spi/loggerrepository.h
+++ b/src/main/include/log4cxx/spi/loggerrepository.h
@@ -28,6 +28,7 @@
 #include <log4cxx/spi/loggerfactory.h>
 #include <log4cxx/level.h>
 #include <log4cxx/spi/hierarchyeventlistener.h>
+#include <functional>
 
 namespace log4cxx
 {
@@ -58,9 +59,9 @@ class LOG4CXX_EXPORT LoggerRepository : public virtual helpers::Object
 			listener) = 0;
 
 		/**
-		 * Load the configuration if not yet configured.
+		 * Call \c configurator if not yet configured.
 		 */
-		virtual void autoConfigure() {};
+		virtual void ensureIsConfigured(std::function<void()> configurator) = 0;
 
 		/**
 		Is the repository disabled for a given level? The answer depends
diff --git a/src/test/cpp/abts.cpp b/src/test/cpp/abts.cpp
index d40ec642..5843d649 100644
--- a/src/test/cpp/abts.cpp
+++ b/src/test/cpp/abts.cpp
@@ -527,8 +527,7 @@ void abts_not_impl(abts_case* tc, const char* message, int lineno)
 
 int main(int argc, const char* const argv[])
 {
-	int i;
-	int rv;
+	int rv = 0;
 	int list_provided = 0;
 	abts_suite* suite = NULL;
 
@@ -540,7 +539,7 @@ int main(int argc, const char* const argv[])
 	quiet = !isatty(STDOUT_FILENO);
 #endif
 
-	for (i = 1; i < argc; i++)
+	for (int i = 1; i < argc; i++)
 	{
 		if (!strcmp(argv[i], "-v"))
 		{
@@ -582,7 +581,7 @@ int main(int argc, const char* const argv[])
 		 */
 		testlist = (const char**) calloc(argc + 1, sizeof(char*));
 
-		for (i = 1; i < argc; i++)
+		for (int i = 1; i < argc; i++)
 		{
 			testlist[i - 1] = argv[i];
 		}