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/12/18 05:22:06 UTC

[logging-log4cxx] branch prevent_spurious_warnings created (now 478e06ee)

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

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


      at 478e06ee Prevent spurious warnings when confguring RollingFileAppender using MaxBackupIndex and MaxFileSize options

This branch includes the following new commits:

     new 478e06ee Prevent spurious warnings when confguring RollingFileAppender using MaxBackupIndex and MaxFileSize options

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



[logging-log4cxx] 01/01: Prevent spurious warnings when confguring RollingFileAppender using MaxBackupIndex and MaxFileSize options

Posted by sw...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 478e06ee735879a0204729c2ed2d5bb78a34fad2
Author: Stephen Webb <st...@sabreautonomous.com.au>
AuthorDate: Sun Dec 18 16:20:52 2022 +1100

    Prevent spurious warnings when confguring RollingFileAppender using MaxBackupIndex and MaxFileSize options
---
 src/main/cpp/propertyconfigurator.cpp              | 65 +++++++++++++---------
 src/main/cpp/rollingfileappender.cpp               | 28 +++++++---
 .../include/log4cxx/rolling/rollingfileappender.h  | 27 +++++++--
 3 files changed, 83 insertions(+), 37 deletions(-)

diff --git a/src/main/cpp/propertyconfigurator.cpp b/src/main/cpp/propertyconfigurator.cpp
index ea5c340a..2406608e 100644
--- a/src/main/cpp/propertyconfigurator.cpp
+++ b/src/main/cpp/propertyconfigurator.cpp
@@ -433,8 +433,6 @@ AppenderPtr PropertyConfigurator::parseAppender(
 	// Appender was not previously initialized.
 	LogString prefix = APPENDER_PREFIX + appenderName;
 	LogString layoutPrefix = prefix + LOG4CXX_STR(".layout");
-	LogString rollingPolicyKey = prefix + LOG4CXX_STR(".rollingPolicy");
-	LogString triggeringPolicyKey = prefix + LOG4CXX_STR(".triggeringPolicy");
 
 	std::shared_ptr<Object> obj =
 		OptionConverter::instantiateByKey(
@@ -485,38 +483,55 @@ AppenderPtr PropertyConfigurator::parseAppender(
 		}
 
 		RollingFileAppenderPtr rolling = log4cxx::cast<rolling::RollingFileAppender>(appender);
-		if(rolling)
+		if (rolling)
 		{
-			RollingPolicyPtr rollingPolicy;
-			std::shared_ptr<Object> rolling_obj =
-				OptionConverter::instantiateByKey(
-					props, rollingPolicyKey, RollingPolicy::getStaticClass(), 0);
-			rollingPolicy = log4cxx::cast<RollingPolicy>( rolling_obj );
-			if(rollingPolicy)
+			LogString rollingPolicyKey = prefix + LOG4CXX_STR(".rollingPolicy");
+			if (!OptionConverter::findAndSubst(rollingPolicyKey, props).empty())
 			{
-				rolling->setRollingPolicy(rollingPolicy);
-
-				LogLog::debug((LogString) LOG4CXX_STR("Parsing rolling policy options for \"")
-					+ appenderName + LOG4CXX_STR("\"."));
-				PropertySetter::setProperties(rollingPolicy, props, rollingPolicyKey + LOG4CXX_STR("."), p);
+				RollingPolicyPtr rollingPolicy;
+				std::shared_ptr<Object> rolling_obj =
+					OptionConverter::instantiateByKey(
+						props, rollingPolicyKey, RollingPolicy::getStaticClass(), 0);
+				rollingPolicy = log4cxx::cast<RollingPolicy>( rolling_obj );
+				if(rollingPolicy)
+				{
+					rolling->setRollingPolicy(rollingPolicy);
+
+					LogLog::debug((LogString) LOG4CXX_STR("Parsing rolling policy options for \"")
+						+ appenderName + LOG4CXX_STR("\"."));
+					PropertySetter::setProperties(rollingPolicy, props, rollingPolicyKey + LOG4CXX_STR("."), p);
+				}
 			}
 
-			TriggeringPolicyPtr triggeringPolicy;
-			std::shared_ptr<Object> triggering_obj =
-				OptionConverter::instantiateByKey(
-					props, triggeringPolicyKey, TriggeringPolicy::getStaticClass(), 0);
-			triggeringPolicy = log4cxx::cast<TriggeringPolicy>( triggering_obj );
-			if(triggeringPolicy)
+			LogString triggeringPolicyKey = prefix + LOG4CXX_STR(".triggeringPolicy");
+			if (!OptionConverter::findAndSubst(triggeringPolicyKey, props).empty())
 			{
-				rolling->setTriggeringPolicy(triggeringPolicy);
-
-				LogLog::debug((LogString) LOG4CXX_STR("Parsing triggering policy options for \"")
-					+ appenderName + LOG4CXX_STR("\"."));
-				PropertySetter::setProperties(triggeringPolicy, props, triggeringPolicyKey + LOG4CXX_STR("."), p);
+				TriggeringPolicyPtr triggeringPolicy;
+				std::shared_ptr<Object> triggering_obj =
+					OptionConverter::instantiateByKey(
+						props, triggeringPolicyKey, TriggeringPolicy::getStaticClass(), 0);
+				triggeringPolicy = log4cxx::cast<TriggeringPolicy>( triggering_obj );
+				if(triggeringPolicy)
+				{
+					rolling->setTriggeringPolicy(triggeringPolicy);
+
+					LogLog::debug((LogString) LOG4CXX_STR("Parsing triggering policy options for \"")
+						+ appenderName + LOG4CXX_STR("\"."));
+					PropertySetter::setProperties(triggeringPolicy, props, triggeringPolicyKey + LOG4CXX_STR("."), p);
+				}
 			}
 		}
 
 		PropertySetter::setProperties(appender, props, prefix + LOG4CXX_STR("."), p);
+		if (!rolling)
+			;
+		else if (!rolling->hasRollingPolicy())
+			LogLog::warn((LogString) LOG4CXX_STR("Missing rolling policy for \"")
+				+ appenderName + LOG4CXX_STR("\"."));
+		else if (!rolling->hasTriggeringPolicy())
+			LogLog::warn((LogString) LOG4CXX_STR("Missing triggering policy for \"")
+				+ appenderName + LOG4CXX_STR("\"."));
+
 		LogLog::debug((LogString) LOG4CXX_STR("Parsed \"")
 			+ appenderName + LOG4CXX_STR("\" options."));
 	}
diff --git a/src/main/cpp/rollingfileappender.cpp b/src/main/cpp/rollingfileappender.cpp
index fa543fcb..dff03fb9 100644
--- a/src/main/cpp/rollingfileappender.cpp
+++ b/src/main/cpp/rollingfileappender.cpp
@@ -482,8 +482,15 @@ void RollingFileAppender::subAppend(const LoggingEventPtr& event, Pool& p)
 }
 
 /**
- * Get rolling policy.
- * @return rolling policy.
+ Does this have a scheme for rolling over log files?
+*/
+bool RollingFileAppender::hasRollingPolicy() const
+{
+	return !!_priv->rollingPolicy;
+}
+
+/**
+ * TThe policy that implements the scheme for rolling over a log file.
  */
 RollingPolicyPtr RollingFileAppender::getRollingPolicy() const
 {
@@ -491,8 +498,15 @@ RollingPolicyPtr RollingFileAppender::getRollingPolicy() const
 }
 
 /**
- * Get triggering policy.
- * @return triggering policy.
+ Does this have a basis for triggering log file rollover?
+*/
+bool RollingFileAppender::hasTriggeringPolicy() const
+{
+	return !!_priv->triggeringPolicy;
+}
+
+/**
+ * The policy that determine when to trigger a log file rollover.
  */
 TriggeringPolicyPtr RollingFileAppender::getTriggeringPolicy() const
 {
@@ -500,8 +514,7 @@ TriggeringPolicyPtr RollingFileAppender::getTriggeringPolicy() const
 }
 
 /**
- * Sets the rolling policy.
- * @param policy rolling policy.
+ * Set the scheme for rolling over log files.
  */
 void RollingFileAppender::setRollingPolicy(const RollingPolicyPtr& policy)
 {
@@ -509,8 +522,7 @@ void RollingFileAppender::setRollingPolicy(const RollingPolicyPtr& policy)
 }
 
 /**
- * Set triggering policy.
- * @param policy triggering policy.
+ * Set policy that determine when to trigger a log file rollover.
  */
 void RollingFileAppender::setTriggeringPolicy(const TriggeringPolicyPtr& policy)
 {
diff --git a/src/main/include/log4cxx/rolling/rollingfileappender.h b/src/main/include/log4cxx/rolling/rollingfileappender.h
index b44f7b8d..bb582089 100644
--- a/src/main/include/log4cxx/rolling/rollingfileappender.h
+++ b/src/main/include/log4cxx/rolling/rollingfileappender.h
@@ -158,19 +158,38 @@ class LOG4CXX_EXPORT RollingFileAppender : public FileAppender
 		bool rolloverInternal(log4cxx::helpers::Pool& p);
 
 	public:
+		/**
+		 Does this have a scheme for rolling over log files?
+		*/
+		bool hasRollingPolicy() const;
+
+		/**
+		 Does this have a basis for triggering log file rollover?
+		*/
+		bool hasTriggeringPolicy() const;
 
+		/**
+		 * The policy that implements the scheme for rolling over a log file.
+		 */
 		RollingPolicyPtr getRollingPolicy() const;
 
+		/**
+		 * The policy that determine when to trigger a log file rollover.
+		 */
 		TriggeringPolicyPtr getTriggeringPolicy() const;
 
 		/**
-		 * Sets the rolling policy. In case the 'policy' argument also implements
-		 * {@link TriggeringPolicy}, then the triggering policy for this appender
-		 * is automatically set to be the policy argument.
-		 * @param policy
+		 * Use \c policy as the scheme for rolling over log files.
+		 *
+		 * Where the \c policy also implements
+		 * {@link TriggeringPolicy}, then \c policy
+		 * will be used to determine when to trigger a log file rollover.
 		 */
 		void setRollingPolicy(const RollingPolicyPtr& policy);
 
+		/**
+		 * Use \c policy to determine when to trigger a log file rollover.
+		 */
 		void setTriggeringPolicy(const TriggeringPolicyPtr& policy);
 
 	public: