Author: joseph
Date: Mon Feb 17 19:27:29 2014
New Revision: 1569091

URL: http://svn.apache.org/r1569091
Log:
LOGCXX-342

Modified:
    incubator/log4cxx/trunk/src/main/cpp/propertyconfigurator.cpp
    incubator/log4cxx/trunk/src/main/include/log4cxx/propertyconfigurator.h

Modified: incubator/log4cxx/trunk/src/main/cpp/propertyconfigurator.cpp
URL: 
http://svn.apache.org/viewvc/incubator/log4cxx/trunk/src/main/cpp/propertyconfigurator.cpp?rev=1569091&r1=1569090&r2=1569091&view=diff
==============================================================================
--- incubator/log4cxx/trunk/src/main/cpp/propertyconfigurator.cpp (original)
+++ incubator/log4cxx/trunk/src/main/cpp/propertyconfigurator.cpp Mon Feb 17 
19:27:29 2014
@@ -51,31 +51,34 @@ using namespace log4cxx::config;
 
 #if APR_HAS_THREADS
 #include <log4cxx/helpers/filewatchdog.h>
-
-class PropertyWatchdog  : public FileWatchdog
+namespace log4cxx 
 {
-public:
-        PropertyWatchdog(const File& filename) : FileWatchdog(filename)
-        {
-        }
+       class PropertyWatchdog  : public FileWatchdog
+       {
+       public:
+                       PropertyWatchdog(const File& filename) : 
FileWatchdog(filename)
+                       {
+                       }
+
+                       /**
+                       Call PropertyConfigurator#doConfigure(const String& 
configFileName,
+                       const spi::LoggerRepositoryPtr& hierarchy) with the
+                       <code>filename</code> to reconfigure log4cxx.
+                       */
+                       void doOnChange()
+                       {
+                                       PropertyConfigurator().doConfigure(file,
+                                                       
LogManager::getLoggerRepository());
+                       }
+       };
+}
+
+PropertyWatchdog *PropertyConfigurator::pdog = NULL;
 
-        /**
-        Call PropertyConfigurator#doConfigure(const String& configFileName,
-        const spi::LoggerRepositoryPtr& hierarchy) with the
-        <code>filename</code> to reconfigure log4cxx.
-        */
-        void doOnChange()
-        {
-                PropertyConfigurator().doConfigure(file,
-                        LogManager::getLoggerRepository());
-        }
-};
 #endif
 
 IMPLEMENT_LOG4CXX_OBJECT(PropertyConfigurator)
 
-
-
 PropertyConfigurator::PropertyConfigurator()
 : registry(new std::map<LogString, AppenderPtr>()), loggerFactory(new 
DefaultLoggerFactory())
 {
@@ -137,7 +140,9 @@ void PropertyConfigurator::configureAndW
 void PropertyConfigurator::configureAndWatch(
         const File& configFilename, long delay)
 {
-    PropertyWatchdog * pdog = new PropertyWatchdog(configFilename);
+       if(pdog)
+               delete pdog;
+    pdog = new PropertyWatchdog(configFilename);
     APRInitializer::registerCleanup(pdog);
     pdog->setDelay(delay);
     pdog->start();

Modified: 
incubator/log4cxx/trunk/src/main/include/log4cxx/propertyconfigurator.h
URL: 
http://svn.apache.org/viewvc/incubator/log4cxx/trunk/src/main/include/log4cxx/propertyconfigurator.h?rev=1569091&r1=1569090&r2=1569091&view=diff
==============================================================================
--- incubator/log4cxx/trunk/src/main/include/log4cxx/propertyconfigurator.h 
(original)
+++ incubator/log4cxx/trunk/src/main/include/log4cxx/propertyconfigurator.h Mon 
Feb 17 19:27:29 2014
@@ -50,6 +50,7 @@ namespace log4cxx
         class LoggerFactory;
     }
 
+       class PropertyWatchdog;
 /**
 Allows the configuration of log4cxx from an external file.  See
 <b>{@link #doConfigure(const File&, log4cxx::spi::LoggerRepositoryPtr&)}</b>
@@ -384,6 +385,7 @@ protected:
 private:
       PropertyConfigurator(const PropertyConfigurator&);
       PropertyConfigurator& operator=(const PropertyConfigurator&);
+         static PropertyWatchdog *pdog;
    }; // class PropertyConfigurator
 }  // namespace log4cxx
 


Reply via email to