Author: tschoening
Date: Mon Feb 10 15:19:34 2014
New Revision: 1566655

URL: http://svn.apache.org/r1566655
Log:
LOGCXX-394: Levels are not thread safe

Modified:
    incubator/log4cxx/trunk/src/changes/changes.xml
    incubator/log4cxx/trunk/src/main/cpp/level.cpp

Modified: incubator/log4cxx/trunk/src/changes/changes.xml
URL: 
http://svn.apache.org/viewvc/incubator/log4cxx/trunk/src/changes/changes.xml?rev=1566655&r1=1566654&r2=1566655&view=diff
==============================================================================
--- incubator/log4cxx/trunk/src/changes/changes.xml (original)
+++ incubator/log4cxx/trunk/src/changes/changes.xml Mon Feb 10 15:19:34 2014
@@ -72,6 +72,7 @@
                        <action issue="LOGCXX-381" type="fix">Pkgconfig can't 
find dependencies properly if log4cxx built statically</action>
                        <action issue="LOGCXX-382" type="fix">Mingw build type 
conversion error</action>
                        <action issue="LOGCXX-388" 
type="fix">Hierarchy::updateParents loops forever on illegal logger-name like 
'.logger1'</action>
+                       <action issue="LOGCXX-394" type="fix">Levels are not 
thread safe</action>
                        <action issue="LOGCXX-412" type="fix">Log4cxx doesn't 
roll normally when working under multiple processes environment</action>
                        <action issue="LOGCXX-413" type="fix">log4cxx doesn't 
compile on openembedded (due to Alex Zbarcea)</action>
                        <action issue="LOGCXX-414" type="fix">possibly wrong 
use of autotools docdir (due to Alex Zbarcea)</action>

Modified: incubator/log4cxx/trunk/src/main/cpp/level.cpp
URL: 
http://svn.apache.org/viewvc/incubator/log4cxx/trunk/src/main/cpp/level.cpp?rev=1566655&r1=1566654&r2=1566655&view=diff
==============================================================================
--- incubator/log4cxx/trunk/src/main/cpp/level.cpp (original)
+++ incubator/log4cxx/trunk/src/main/cpp/level.cpp Mon Feb 10 15:19:34 2014
@@ -30,44 +30,36 @@ using namespace log4cxx::helpers;
 IMPLEMENT_LOG4CXX_OBJECT_WITH_CUSTOM_CLASS(Level, LevelClass)
 
 LevelPtr Level::getOff() {
-   static LevelPtr level(new Level(Level::OFF_INT, LOG4CXX_STR("OFF"), 0));
-   return level;
+   return LevelPtr(new Level(Level::OFF_INT, LOG4CXX_STR("OFF"), 0));
 }
 
 LevelPtr Level::getFatal() {
-   static LevelPtr level(new Level(Level::FATAL_INT, LOG4CXX_STR("FATAL"), 0));
-   return level;
+   return LevelPtr(new Level(Level::FATAL_INT, LOG4CXX_STR("FATAL"), 0));
 }
 
 LevelPtr Level::getError() {
-   static LevelPtr level(new Level(Level::ERROR_INT, LOG4CXX_STR("ERROR"), 3));
-   return level;
+   return LevelPtr(new Level(Level::ERROR_INT, LOG4CXX_STR("ERROR"), 3));
 }
 
 LevelPtr Level::getWarn() {
-   static LevelPtr level(new Level(Level::WARN_INT, LOG4CXX_STR("WARN"), 4));
-   return level;
+   return LevelPtr(new Level(Level::WARN_INT, LOG4CXX_STR("WARN"), 4));
 }
 
 LevelPtr Level::getInfo() {
-   static LevelPtr level(new Level(Level::INFO_INT, LOG4CXX_STR("INFO"), 6));
-   return level;
+   return LevelPtr(new Level(Level::INFO_INT, LOG4CXX_STR("INFO"), 6));
 }
 
 LevelPtr Level::getDebug() {
-   static LevelPtr level(new Level(Level::DEBUG_INT, LOG4CXX_STR("DEBUG"), 7));
-   return level;
+   return LevelPtr(new Level(Level::DEBUG_INT, LOG4CXX_STR("DEBUG"), 7));
 }
 
 LevelPtr Level::getTrace() {
-   static LevelPtr level(new Level(Level::TRACE_INT, LOG4CXX_STR("TRACE"), 7));
-   return level;
+   return LevelPtr(new Level(Level::TRACE_INT, LOG4CXX_STR("TRACE"), 7));
 }
 
 
 LevelPtr Level::getAll() {
-   static LevelPtr level(new Level(Level::ALL_INT, LOG4CXX_STR("ALL"), 7));
-   return level;
+   return LevelPtr(new Level(Level::ALL_INT, LOG4CXX_STR("ALL"), 7));
 }
 
 


Reply via email to