--- \dev\logging-log4cxx\src\propertyconfigurator.cpp	2005-05-14 00:10:51.000000000 +0200
+++ \dev\logging-log4cxx.ksg\src\propertyconfigurator.cpp	2005-09-19 10:04:08.358610300 +0200
@@ -35,12 +35,13 @@
 #include <apr_file_info.h>
 #include <apr_pools.h>
 #include <log4cxx/helpers/transcoder.h>
-
+#include <log4cxx/rolling/rollingfileappender.h>
 
 using namespace log4cxx;
 using namespace log4cxx::spi;
 using namespace log4cxx::helpers;
 using namespace log4cxx::config;
+using namespace log4cxx::rolling;
 
 
 #if APR_HAS_THREADS
@@ -346,7 +347,7 @@
                         continue;
                 }
 
-                LogLog::debug(((LogString) LOG4CXX_STR("Parsing appender named ") LOG4CXX_EOL)
+                LogLog::debug((LogString) LOG4CXX_STR("Parsing appender named \"") 
                       + appenderName + LOG4CXX_STR("\"."));
                 appender = parseAppender(props, appenderName);
 
@@ -406,15 +407,58 @@
 
                                 //configureOptionHandler(layout, layoutPrefix + ".", props);
                                 PropertySetter::setProperties(layout, props, layoutPrefix + LOG4CXX_STR("."), p);
-                LogLog::debug((LogString) LOG4CXX_STR("End of parsing for \"")
+                LogLog::debug((LogString) LOG4CXX_STR("End of parsing layout options for \"")
                     + appenderName +  LOG4CXX_STR("\"."));
                         }
                 }
 
+                RollingFileAppenderPtr rfa(appender);
+                if (rfa != NULL) 
+                {
+                  LogString rollingPolicyPrefix = prefix + LOG4CXX_STR(".rollingPolicy");
+
+                  // ***CS***
+                  RollingPolicyPtr rollingPolicy = OptionConverter::instantiateByKey( 
+                    props, rollingPolicyPrefix, RollingPolicy::getStaticClass(), 0);
+
+                  if (rollingPolicy != 0)
+                  {
+                    rfa->setRollingPolicy(rollingPolicy);
+
+                    LogLog::debug((LogString) LOG4CXX_STR("Parsing rolling policy options for \"")
+                      + appenderName + LOG4CXX_STR("\"."));
+
+                    PropertySetter::setProperties(rollingPolicy, props, rollingPolicyPrefix + LOG4CXX_STR("."), p);
+
+                    LogLog::debug((LogString) LOG4CXX_STR("End of parsing rolling policy options for \"")
+                      + appenderName +  LOG4CXX_STR("\"."));
+
+                  }
+
+                  LogString triggeringPolicyPrefix = prefix + LOG4CXX_STR(".triggeringPolicy");
+
+                  TriggeringPolicyPtr triggeringPolicy = OptionConverter::instantiateByKey(
+                    props, triggeringPolicyPrefix, TriggeringPolicy::getStaticClass(), 0);
+
+                  if (triggeringPolicy != 0)
+                  {
+                    rfa->setTriggeringPolicy(triggeringPolicy);
+
+                    LogLog::debug((LogString) LOG4CXX_STR("Parsing triggering policy options for \"")
+                      + appenderName + LOG4CXX_STR("\"."));
+
+                    PropertySetter::setProperties(triggeringPolicy, props, triggeringPolicyPrefix + LOG4CXX_STR("."), p);
+
+                    LogLog::debug((LogString) LOG4CXX_STR("End of parsing triggering policy options for \"")
+                      + appenderName +  LOG4CXX_STR("\"."));
+                  }
+
+                }
+
                 //configureOptionHandler((OptionHandler) appender, prefix + _T("."), props);
                 PropertySetter::setProperties(appender, props, prefix + LOG4CXX_STR("."), p);
-        LogLog::debug((LogString) LOG4CXX_STR("Parsed \"")
-             + appenderName + LOG4CXX_STR("\" options."));
+                LogLog::debug((LogString) LOG4CXX_STR("Parsed \"")
+                  + appenderName + LOG4CXX_STR("\" options."));
         }
 
         registryPut(appender);
