You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by rm...@apache.org on 2022/01/04 00:01:39 UTC
[logging-log4cxx] 01/01: Merge branch 'master' into next_stable
This is an automated email from the ASF dual-hosted git repository.
rmiddleton pushed a commit to branch next_stable
in repository https://gitbox.apache.org/repos/asf/logging-log4cxx.git
commit 90f5c7b83659795c140c9946d68943349215efeb
Merge: 40dd1a6 6505a08
Author: Robert Middleton <ro...@rm5248.com>
AuthorDate: Mon Jan 3 19:00:27 2022 -0500
Merge branch 'master' into next_stable
src/main/cpp/hierarchy.cpp | 40 +++++++++++-----------
src/main/cpp/logger.cpp | 6 ++--
src/test/cpp/multithreadtest.cpp | 1 -
src/test/cpp/throughput/log4cxxbenchmarker.cpp | 33 +++++++++---------
src/test/cpp/throughput/log4cxxbenchmarker.h | 4 +--
src/test/cpp/throughput/throughput-main.cpp | 43 ++++++++++++------------
src/test/resources/witness/autoConfigureTest.log | 1 +
7 files changed, 65 insertions(+), 63 deletions(-)
diff --cc src/main/cpp/hierarchy.cpp
index de6bed4,22caa89..8c39906
--- a/src/main/cpp/hierarchy.cpp
+++ b/src/main/cpp/hierarchy.cpp
@@@ -241,26 -217,30 +241,27 @@@ LoggerPtr Hierarchy::getLogger(const Lo
LoggerPtr Hierarchy::getLogger(const LogString& name,
const spi::LoggerFactoryPtr& factory)
{
- std::unique_lock<std::mutex> lock(mutex);
-
- LoggerMap::iterator it = loggers->find(name);
+ std::unique_lock<std::mutex> lock(m_priv->mutex);
+ LoggerMap::iterator it = m_priv->loggers.find(name);
+ LoggerPtr result;
- if (it != loggers->end())
+
+ if (it != m_priv->loggers.end())
{
- return it->second;
+ result = it->second;
}
- else
+ if (!result)
{
- LoggerPtr logger(factory->makeNewLoggerInstance(pool, name));
- logger->setHierarchy(this);
- if (it != loggers->end())
- it->second = logger;
- else
- loggers->insert(LoggerMap::value_type(name, logger));
+ LoggerPtr logger(factory->makeNewLoggerInstance(m_priv->pool, name));
+ logger->setHierarchy(shared_from_this());
+ m_priv->loggers.insert(LoggerMap::value_type(name, logger));
- ProvisionNodeMap::iterator it2 = provisionNodes->find(name);
+ ProvisionNodeMap::iterator it2 = m_priv->provisionNodes.find(name);
- if (it2 != provisionNodes->end())
+ if (it2 != m_priv->provisionNodes.end())
{
updateChildren(it2->second, logger);
- provisionNodes->erase(it2);
+ m_priv->provisionNodes.erase(it2);
}
updateParents(logger);
@@@ -271,17 -252,14 +273,14 @@@
LoggerList Hierarchy::getCurrentLoggers() const
{
- std::unique_lock<std::mutex> lock(mutex);
+ std::unique_lock<std::mutex> lock(m_priv->mutex);
LoggerList v;
- LoggerMap::const_iterator it, itEnd = m_priv->loggers.end();
-
- for (it = m_priv->loggers.begin(); it != itEnd; it++)
- for (auto& item : *this->loggers)
++ for (auto& item : m_priv->loggers)
{
- v.push_back(it->second);
+ if (auto pLogger = item.second)
+ v.push_back(pLogger);
}
-
-
return v;
}
@@@ -317,13 -291,16 +316,16 @@@ void Hierarchy::resetConfiguration(
shutdownInternal();
- LoggerMap::const_iterator it, itEnd = loggers->end();
+ LoggerMap::const_iterator it, itEnd = m_priv->loggers.end();
- for (it = loggers->begin(); it != itEnd; it++)
+ for (it = m_priv->loggers.begin(); it != itEnd; it++)
{
- it->second->setLevel(0);
- it->second->setAdditivity(true);
- it->second->setResourceBundle(0);
+ if (auto pLogger = it->second)
+ {
+ pLogger->setLevel(0);
+ pLogger->setAdditivity(true);
+ pLogger->setResourceBundle(0);
+ }
}
//rendererMap.clear();
@@@ -338,28 -315,26 +340,26 @@@ void Hierarchy::shutdown(
void Hierarchy::shutdownInternal()
{
- configured = false;
+ m_priv->configured = false;
- LoggerPtr root1 = getRootLogger();
-
// begin by closing nested appenders
- root1->closeNestedAppenders();
- root->closeNestedAppenders();
++ m_priv->root->closeNestedAppenders();
- LoggerMap::iterator it, itEnd = loggers->end();
+ LoggerMap::iterator it, itEnd = m_priv->loggers.end();
- for (it = loggers->begin(); it != itEnd; it++)
+ for (it = m_priv->loggers.begin(); it != itEnd; it++)
{
- LoggerPtr logger = it->second;
- logger->closeNestedAppenders();
+ if (auto pLogger = it->second)
+ pLogger->closeNestedAppenders();
}
// then, remove all appenders
- root1->removeAllAppenders();
- root->removeAllAppenders();
++ m_priv->root->removeAllAppenders();
- for (it = loggers->begin(); it != itEnd; it++)
+ for (it = m_priv->loggers.begin(); it != itEnd; it++)
{
- LoggerPtr logger = it->second;
- logger->removeAllAppenders();
+ if (auto pLogger = it->second)
+ pLogger->removeAllAppenders();
}
}
diff --cc src/main/cpp/logger.cpp
index 91eb33b,90a1e88..e3db087
--- a/src/main/cpp/logger.cpp
+++ b/src/main/cpp/logger.cpp
@@@ -98,10 -55,12 +98,10 @@@ Logger::~Logger(
void Logger::addAppender(const AppenderPtr newAppender)
{
- log4cxx::spi::LoggerRepositoryPtr rep;
-
- aai->addAppender(newAppender);
- if (repository)
+ m_priv->aai.addAppender(newAppender);
+ if (auto rep = getHierarchy())
{
- rep->fireAddAppenderEvent(this, newAppender.get());
- repository->fireAddAppenderEvent(this, newAppender.get());
++ m_priv->repositoryRaw->fireAddAppenderEvent(this, newAppender.get());
}
}
@@@ -115,11 -76,11 +115,11 @@@ void Logger::reconfigure( const std::ve
it != appenders.cend();
it++ )
{
- aai->addAppender( *it );
+ m_priv->aai.addAppender( *it );
- if (repository)
+ if (auto rep = getHierarchy())
{
- rep->fireAddAppenderEvent(this, it->get());
- repository->fireAddAppenderEvent(this, it->get());
++ m_priv->repositoryRaw->fireAddAppenderEvent(this, it->get());
}
}
}
@@@ -140,11 -101,9 +140,11 @@@ void Logger::callAppenders(const spi::L
}
}
- if (writes == 0 && repository)
+ auto rep = getHierarchy();
+
+ if (writes == 0 && rep)
{
- rep->emitNoAppenderWarning(const_cast<Logger*>(this));
- repository->emitNoAppenderWarning(const_cast<Logger*>(this));
++ m_priv->repositoryRaw->emitNoAppenderWarning(const_cast<Logger*>(this));
}
}
diff --cc src/test/cpp/multithreadtest.cpp
index b7dc838,91ca614..15ce488
--- a/src/test/cpp/multithreadtest.cpp
+++ b/src/test/cpp/multithreadtest.cpp
@@@ -94,15 -84,12 +94,14 @@@ public
void tearDown()
{
- // root->getLoggerRepository()->resetConfiguration();
}
- void testMultithreadedLoggers(){
+ void testMultithreadedLoggers()
+ {
std::vector<std::thread> threads;
- for( int x = 0; x < 6; x++ ){
+ for ( int x = 0; x < 6; x++ )
+ {
std::thread thr( multithread_logger, 20000 );
threads.push_back( std::move(thr) );
}