[prev in list] [next in list] [prev in thread] [next in thread]
List: flume-commits
Subject: (logging-log4cxx) branch master updated: Condition internal debug logging on its enabled state (#384
From: swebb2066 () apache ! org
Date: 2024-05-17 2:12:48
Message-ID: 171591196817.2067099.6224193313714817784 () gitbox2-he-fi ! apache ! org
[Download RAW message or body]
This is an automated email from the ASF dual-hosted git repository.
swebb2066 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/logging-log4cxx.git
The following commit(s) were added to refs/heads/master by this push:
new 5354f9cb Condition internal debug logging on its enabled state (#384)
5354f9cb is described below
commit 5354f9cb739c348c05ae9938ebaded843f78fd78
Author: Stephen Webb <stephen.webb@ieee.org>
AuthorDate: Fri May 17 12:12:43 2024 +1000
Condition internal debug logging on its enabled state (#384)
---
src/examples/cpp/com/foo/config3.cpp | 55 +++++++------
src/main/cpp-qt/configuration.cpp | 14 +++-
src/main/cpp/asyncappender.cpp | 2 +-
src/main/cpp/defaultconfigurator.cpp | 34 +++++---
src/main/cpp/domconfigurator.cpp | 100 +++++++++++++++++------
src/main/cpp/fallbackerrorhandler.cpp | 56 ++++++++-----
src/main/cpp/filewatchdog.cpp | 39 +++++----
src/main/cpp/loglog.cpp | 12 ++-
src/main/cpp/optionconverter.cpp | 23 ++++--
src/main/cpp/patternlayout.cpp | 8 +-
src/main/cpp/propertyconfigurator.cpp | 131 ++++++++++++++++++++----------
src/main/cpp/propertysetter.cpp | 7 +-
src/main/cpp/socketappenderskeleton.cpp | 48 +++++++----
src/main/cpp/transcoder.cpp | 13 +--
src/main/include/log4cxx/helpers/loglog.h | 8 +-
15 files changed, 367 insertions(+), 183 deletions(-)
diff --git a/src/examples/cpp/com/foo/config3.cpp \
b/src/examples/cpp/com/foo/config3.cpp index e6198b4f..8e686f68 100644
--- a/src/examples/cpp/com/foo/config3.cpp
+++ b/src/examples/cpp/com/foo/config3.cpp
@@ -67,31 +67,35 @@ auto DefaultConfigurationFileNames(std::string& altPrefix) -> \
std::vector<std::s if (std::string::npos != slashIndex) {
// Extract the path
altPrefix = programFileName.substr(0, slashIndex + 1);
-#if defined(_DEBUG)
- LogString msg1 = LOG4CXX_STR("Alternate prefix [");
- helpers::Transcoder::decode(altPrefix, msg1);
- msg1 += LOG4CXX_STR("]");
- helpers::LogLog::debug(msg1);
-#endif
+ if (helpers::LogLog::isDebugEnabled())
+ {
+ LogString msg = LOG4CXX_STR("Alternate prefix [");
+ helpers::Transcoder::decode(altPrefix, msg);
+ msg += LOG4CXX_STR("]");
+ helpers::LogLog::debug(msg);
+ }
// Add a local directory relative name
result.push_back(programFileName.substr(slashIndex + 1));
-#if defined(_DEBUG)
- LogString msg2(LOG4CXX_STR("Alternate configuration file name ["));
- helpers::Transcoder::decode(result.back(), msg2);
- msg2 += LOG4CXX_STR("]");
- helpers::LogLog::debug(msg2);
-#endif
+ if (helpers::LogLog::isDebugEnabled())
+ {
+ LogString msg(LOG4CXX_STR("Alternate configuration file name ["));
+ helpers::Transcoder::decode(result.back(), msg);
+ msg += LOG4CXX_STR("]");
+ helpers::LogLog::debug(msg);
+ }
// Add a local directory relative name without any extension
auto dotIndex = result.back().rfind('.');
- if (std::string::npos != dotIndex) {
+ if (std::string::npos != dotIndex)
+ {
result.push_back(result.back());
result.back().erase(dotIndex);
-#if defined(_DEBUG)
- LogString msg3(LOG4CXX_STR("Alternate configuration file name ["));
- helpers::Transcoder::decode(result.back(), msg3);
- msg3 += LOG4CXX_STR("]");
- helpers::LogLog::debug(msg3);
-#endif
+ if (helpers::LogLog::isDebugEnabled())
+ {
+ LogString msg(LOG4CXX_STR("Alternate configuration file name ["));
+ helpers::Transcoder::decode(result.back(), msg);
+ msg += LOG4CXX_STR("]");
+ helpers::LogLog::debug(msg);
+ }
}
}
else if (!programFileName.empty()) {
@@ -99,12 +103,13 @@ auto DefaultConfigurationFileNames(std::string& altPrefix) -> \
std::vector<std::s if (std::string::npos != dotIndex) {
programFileName.erase(dotIndex);
result.push_back(programFileName);
-#if defined(_DEBUG)
- LogString msg(LOG4CXX_STR("Alternate configuration file name ["));
- helpers::Transcoder::decode(result.back(), msg);
- msg += LOG4CXX_STR("]");
- helpers::LogLog::debug(msg);
-#endif
+ if (helpers::LogLog::isDebugEnabled())
+ {
+ LogString msg(LOG4CXX_STR("Alternate configuration file name ["));
+ helpers::Transcoder::decode(result.back(), msg);
+ msg += LOG4CXX_STR("]");
+ helpers::LogLog::debug(msg);
+ }
}
}
result.push_back("log4cxx");
diff --git a/src/main/cpp-qt/configuration.cpp b/src/main/cpp-qt/configuration.cpp
index b5aad19c..10f8de3d 100644
--- a/src/main/cpp-qt/configuration.cpp
+++ b/src/main/cpp-qt/configuration.cpp
@@ -108,16 +108,22 @@ Configuration::configureFromFileAndWatch(const \
QVector<QString>& directories, QString canidate_str = dir + "/" + fname;
QFile candidate(canidate_str);
- LOG4CXX_DECODE_QSTRING(msg, "Checking file " + canidate_str);
- LogLog::debug(msg);
+ if (LogLog::isDebugEnabled())
+ {
+ LOG4CXX_DECODE_QSTRING(msg, "Checking file " + canidate_str);
+ LogLog::debug(msg);
+ }
if (candidate.exists())
{
LOG4CXX_NS::spi::ConfigurationStatus configStatus = tryLoadFile(canidate_str);
if( configStatus == LOG4CXX_NS::spi::ConfigurationStatus::Configured ){
return {configStatus, canidate_str};
}
- LOG4CXX_DECODE_QSTRING(failmsg, "Unable to load " + canidate_str + ": trying \
next");
- LogLog::debug(failmsg);
+ if (LogLog::isDebugEnabled())
+ {
+ LOG4CXX_DECODE_QSTRING(failmsg, "Unable to load " + canidate_str + ": trying \
next"); + LogLog::debug(failmsg);
+ }
}
}
}
diff --git a/src/main/cpp/asyncappender.cpp b/src/main/cpp/asyncappender.cpp
index 59c37640..da025343 100644
--- a/src/main/cpp/asyncappender.cpp
+++ b/src/main/cpp/asyncappender.cpp
@@ -561,7 +561,7 @@ void AsyncAppender::dispatch()
}
}
}
- if (!isActive)
+ if (!isActive && LogLog::isDebugEnabled())
{
LogString msg(LOG4CXX_STR("AsyncAppender"));
msg += LOG4CXX_STR(" discardCount ");
diff --git a/src/main/cpp/defaultconfigurator.cpp \
b/src/main/cpp/defaultconfigurator.cpp index 8f9fba35..646d50e3 100644
--- a/src/main/cpp/defaultconfigurator.cpp
+++ b/src/main/cpp/defaultconfigurator.cpp
@@ -72,9 +72,12 @@ void DefaultConfigurator::configure(LoggerRepositoryPtr \
repository) {
File candidate(names[i]);
- LogString debugMsg = LOG4CXX_STR("Checking file ");
- debugMsg.append(names[i]);
- LogLog::debug(debugMsg);
+ if (LogLog::isDebugEnabled())
+ {
+ LogString debugMsg = LOG4CXX_STR("Checking file ");
+ debugMsg.append(names[i]);
+ LogLog::debug(debugMsg);
+ }
if (candidate.exists(pool))
{
configuration = candidate;
@@ -89,10 +92,13 @@ void DefaultConfigurator::configure(LoggerRepositoryPtr \
repository)
if (configuration.exists(pool))
{
- LogString msg(LOG4CXX_STR("Using configuration file ["));
- msg += configuration.getPath();
- msg += LOG4CXX_STR("] for automatic log4cxx configuration");
- LogLog::debug(msg);
+ if (LogLog::isDebugEnabled())
+ {
+ LogString msg(LOG4CXX_STR("Using configuration file ["));
+ msg += configuration.getPath();
+ msg += LOG4CXX_STR("] for automatic log4cxx configuration");
+ LogLog::debug(msg);
+ }
LoggerRepositoryPtr repo(repository);
OptionConverter::selectAndConfigure(
@@ -104,7 +110,7 @@ void DefaultConfigurator::configure(LoggerRepositoryPtr \
repository) : getConfigurationWatchDelay()
);
}
- else
+ else if (LogLog::isDebugEnabled())
{
if (configurationFileName.empty())
{
@@ -180,16 +186,20 @@ DefaultConfigurator::configureFromFile(const \
std::vector<LogString>& directories LogString canidate_str = dir + LOG4CXX_STR("/") \
+ fname; File candidate(canidate_str);
- LogString debugMsg = LOG4CXX_STR("Checking file ");
- debugMsg.append(canidate_str);
- LogLog::debug(debugMsg);
+ if (LogLog::isDebugEnabled())
+ {
+ LogString debugMsg = LOG4CXX_STR("Checking file ");
+ debugMsg.append(canidate_str);
+ LogLog::debug(debugMsg);
+ }
if (candidate.exists(pool))
{
LOG4CXX_NS::spi::ConfigurationStatus configStatus = tryLoadFile(canidate_str);
if( configStatus == LOG4CXX_NS::spi::ConfigurationStatus::Configured ){
return ResultType{configStatus, canidate_str};
}
- LogLog::debug(LOG4CXX_STR("Unable to load file: trying next"));
+ if (LogLog::isDebugEnabled())
+ LogLog::debug(LOG4CXX_STR("Unable to load file: trying next"));
}
}
}
diff --git a/src/main/cpp/domconfigurator.cpp b/src/main/cpp/domconfigurator.cpp
index bb3b9778..e9115d14 100644
--- a/src/main/cpp/domconfigurator.cpp
+++ b/src/main/cpp/domconfigurator.cpp
@@ -211,7 +211,10 @@ AppenderPtr DOMConfigurator::parseAppender(Pool& p,
{
LogString className(subst(getAttribute(utf8Decoder, appenderElement, CLASS_ATTR)));
- LogLog::debug(LOG4CXX_STR("Class name: [") + className + LOG4CXX_STR("]"));
+ if (LogLog::isDebugEnabled())
+ {
+ LogLog::debug(LOG4CXX_STR("Class name: [") + className + LOG4CXX_STR("]"));
+ }
try
{
@@ -291,9 +294,12 @@ AppenderPtr DOMConfigurator::parseAppender(Pool& p,
if (appender->instanceof(AppenderAttachable::getStaticClass()))
{
AppenderAttachablePtr aa = LOG4CXX_NS::cast<AppenderAttachable>(appender);
- LogLog::debug(LOG4CXX_STR("Attaching appender named [") +
- refName + LOG4CXX_STR("] to appender named [") +
- appender->getName() + LOG4CXX_STR("]."));
+ if (LogLog::isDebugEnabled())
+ {
+ LogLog::debug(LOG4CXX_STR("Attaching appender named [") +
+ refName + LOG4CXX_STR("] to appender named [") +
+ appender->getName() + LOG4CXX_STR("]."));
+ }
aa->addAppender(findAppenderByReference(p, utf8Decoder, currentElement, doc, \
appenders)); }
else
@@ -427,7 +433,10 @@ void DOMConfigurator::parseLogger(
// Create a new Logger object from the <category> element.
LogString loggerName = subst(getAttribute(utf8Decoder, loggerElement, NAME_ATTR));
- LogLog::debug(LOG4CXX_STR("Retreiving an instance of Logger."));
+ if (LogLog::isDebugEnabled())
+ {
+ LogLog::debug(LOG4CXX_STR("Retreiving an instance of ") + loggerName);
+ }
LoggerPtr logger = m_priv->repository->getLogger(loggerName, \
m_priv->loggerFactory);
// Setting up a logger needs to be an atomic operation, in order
@@ -437,8 +446,11 @@ void DOMConfigurator::parseLogger(
subst(getAttribute(utf8Decoder, loggerElement, ADDITIVITY_ATTR)),
true);
- LogLog::debug(LOG4CXX_STR("Setting [") + logger->getName() + LOG4CXX_STR("] \
additivity to [") +
- (additivity ? LogString(LOG4CXX_STR("true")) : LogString(LOG4CXX_STR("false"))) + \
LOG4CXX_STR("].")); + if (LogLog::isDebugEnabled())
+ {
+ LogLog::debug(LOG4CXX_STR("Setting [") + logger->getName() + LOG4CXX_STR("] \
additivity to [") + + (additivity ? LogString(LOG4CXX_STR("true")) : \
LogString(LOG4CXX_STR("false"))) + LOG4CXX_STR("].")); + }
logger->setAdditivity(additivity);
parseChildrenOfLoggerElement(p, utf8Decoder, loggerElement, logger, false, doc, \
appenders); }
@@ -456,11 +468,13 @@ void DOMConfigurator::parseLoggerFactory(
if (className.empty())
{
LogLog::error(LOG4CXX_STR("Logger Factory tag class attribute not found."));
- LogLog::debug(LOG4CXX_STR("No Logger Factory configured."));
}
else
{
- LogLog::debug(LOG4CXX_STR("Desired logger factory: [") + className + \
LOG4CXX_STR("]")); + if (LogLog::isDebugEnabled())
+ {
+ LogLog::debug(LOG4CXX_STR("Desired logger factory: [") + className + \
LOG4CXX_STR("]")); + }
std::shared_ptr<Object> obj = OptionConverter::instantiateByClassName(
className,
LoggerFactory::getStaticClass(),
@@ -524,7 +538,9 @@ void DOMConfigurator::parseChildrenOfLoggerElement(
AppenderPtr appender = findAppenderByReference(p, utf8Decoder, currentElement, \
doc, appenders); LogString refName = subst(getAttribute(utf8Decoder, \
currentElement, REF_ATTR));
- if (appender != 0)
+ if (!LogLog::isDebugEnabled())
+ ;
+ else if (appender != 0)
{
LogLog::debug(LOG4CXX_STR("Adding appender named [") + refName +
LOG4CXX_STR("] to logger [") + logger->getName() + LOG4CXX_STR("]."));
@@ -564,7 +580,10 @@ LayoutPtr DOMConfigurator::parseLayout (
apr_xml_elem* layout_element)
{
LogString className(subst(getAttribute(utf8Decoder, layout_element, CLASS_ATTR)));
- LogLog::debug(LOG4CXX_STR("Parsing layout of class: \"") + className + \
LOG4CXX_STR("\"")); + if (LogLog::isDebugEnabled())
+ {
+ LogLog::debug(LOG4CXX_STR("Parsing layout of class: \"") + className + \
LOG4CXX_STR("\"")); + }
try
{
@@ -604,7 +623,10 @@ ObjectPtr DOMConfigurator::parseTriggeringPolicy (
apr_xml_elem* layout_element)
{
LogString className = subst(getAttribute(utf8Decoder, layout_element, CLASS_ATTR));
- LogLog::debug(LOG4CXX_STR("Parsing triggering policy of class: \"") + className + \
LOG4CXX_STR("\"")); + if (LogLog::isDebugEnabled())
+ {
+ LogLog::debug(LOG4CXX_STR("Parsing triggering policy of class: \"") + className + \
LOG4CXX_STR("\"")); + }
try
{
@@ -657,7 +679,10 @@ RollingPolicyPtr DOMConfigurator::parseRollingPolicy (
apr_xml_elem* layout_element)
{
LogString className = subst(getAttribute(utf8Decoder, layout_element, CLASS_ATTR));
- LogLog::debug(LOG4CXX_STR("Parsing rolling policy of class: \"") + className + \
LOG4CXX_STR("\"")); + if (LogLog::isDebugEnabled())
+ {
+ LogLog::debug(LOG4CXX_STR("Parsing rolling policy of class: \"") + className + \
LOG4CXX_STR("\"")); + }
try
{
@@ -706,7 +731,10 @@ void DOMConfigurator::parseLevel(
}
LogString levelStr(subst(getAttribute(utf8Decoder, element, VALUE_ATTR)));
- LogLog::debug(LOG4CXX_STR("Level value for ") + loggerName + LOG4CXX_STR(" is [") + \
levelStr + LOG4CXX_STR("].")); + if (LogLog::isDebugEnabled())
+ {
+ LogLog::debug(LOG4CXX_STR("Level value for ") + loggerName + LOG4CXX_STR(" is [") \
+ levelStr + LOG4CXX_STR("].")); + }
if (StringHelper::equalsIgnoreCase(levelStr, LOG4CXX_STR("INHERITED"), \
LOG4CXX_STR("inherited")) || StringHelper::equalsIgnoreCase(levelStr, \
LOG4CXX_STR("NULL"), LOG4CXX_STR("null"))) @@ -730,7 +758,10 @@ void \
DOMConfigurator::parseLevel( }
else
{
- LogLog::debug(LOG4CXX_STR("Desired Level sub-class: [") + className + \
LOG4CXX_STR("]")); + if (LogLog::isDebugEnabled())
+ {
+ LogLog::debug(LOG4CXX_STR("Desired Level sub-class: [") + className + \
LOG4CXX_STR("]")); + }
try
{
@@ -758,8 +789,11 @@ void DOMConfigurator::parseLevel(
}
}
- LogLog::debug(loggerName + LOG4CXX_STR(" level set to ") +
- logger->getEffectiveLevel()->toString());
+ if (LogLog::isDebugEnabled())
+ {
+ LogLog::debug(loggerName + LOG4CXX_STR(" level set to ") +
+ logger->getEffectiveLevel()->toString());
+ }
}
void DOMConfigurator::setParameter(LOG4CXX_NS::helpers::Pool& p,
@@ -777,10 +811,13 @@ spi::ConfigurationStatus DOMConfigurator::doConfigure(const \
File& filename, spi: {
repository1->setConfigured(true);
m_priv->repository = repository1;
- LogString msg(LOG4CXX_STR("DOMConfigurator configuring file "));
- msg.append(filename.getPath());
- msg.append(LOG4CXX_STR("..."));
- LogLog::debug(msg);
+ if (LogLog::isDebugEnabled())
+ {
+ LogString msg(LOG4CXX_STR("DOMConfigurator configuring file "));
+ msg.append(filename.getPath());
+ msg.append(LOG4CXX_STR("..."));
+ LogLog::debug(msg);
+ }
m_priv->loggerFactory = std::make_shared<DefaultLoggerFactory>();
@@ -807,9 +844,12 @@ spi::ConfigurationStatus DOMConfigurator::doConfigure(const \
File& filename, spi: apr_xml_parser* parser = NULL;
apr_xml_doc* doc = NULL;
- LogString debugMsg = LOG4CXX_STR("Loading configuration file [")
- + filename.getPath() + LOG4CXX_STR("].");
- LogLog::debug(debugMsg);
+ if (LogLog::isDebugEnabled())
+ {
+ LogString debugMsg = LOG4CXX_STR("Loading configuration file [")
+ + filename.getPath() + LOG4CXX_STR("].");
+ LogLog::debug(debugMsg);
+ }
rv = apr_xml_parse_file(p.getAPRPool(), &parser, &doc, fd, 2000);
@@ -1012,7 +1052,10 @@ void DOMConfigurator::parse(
LogString debugAttrib = subst(getAttribute(utf8Decoder, element, \
INTERNAL_DEBUG_ATTR));
static const WideLife<LogString> NULL_STRING(LOG4CXX_STR("NULL"));
- LogLog::debug(LOG4CXX_STR("debug attribute= \"") + debugAttrib + \
LOG4CXX_STR("\".")); + if (LogLog::isDebugEnabled())
+ {
+ LogLog::debug(LOG4CXX_STR("debug attribute= \"") + debugAttrib + \
LOG4CXX_STR("\".")); + }
// if the log4j.dtd is not specified in the XML file, then the
// "debug" attribute is returned as the empty string.
@@ -1020,7 +1063,7 @@ void DOMConfigurator::parse(
{
LogLog::setInternalDebugging(OptionConverter::toBoolean(debugAttrib, true));
}
- else
+ else if (LogLog::isDebugEnabled())
{
LogLog::debug(LOG4CXX_STR("Ignoring internalDebug attribute."));
}
@@ -1036,7 +1079,10 @@ void DOMConfigurator::parse(
}
LogString thresholdStr = subst(getAttribute(utf8Decoder, element, THRESHOLD_ATTR));
- LogLog::debug(LOG4CXX_STR("Threshold =\"") + thresholdStr + LOG4CXX_STR("\"."));
+ if (LogLog::isDebugEnabled())
+ {
+ LogLog::debug(LOG4CXX_STR("Threshold =\"") + thresholdStr + LOG4CXX_STR("\"."));
+ }
if (!thresholdStr.empty() && thresholdStr != NULL_STRING.value())
{
diff --git a/src/main/cpp/fallbackerrorhandler.cpp \
b/src/main/cpp/fallbackerrorhandler.cpp index 39c2ac9d..bdd3e899 100644
--- a/src/main/cpp/fallbackerrorhandler.cpp
+++ b/src/main/cpp/fallbackerrorhandler.cpp
@@ -49,8 +49,11 @@ FallbackErrorHandler::~FallbackErrorHandler() {}
void FallbackErrorHandler::setLogger(const LoggerPtr& logger)
{
- LogLog::debug(((LogString) LOG4CXX_STR("FB: Adding logger ["))
- + logger->getName() + LOG4CXX_STR("]."));
+ if (LogLog::isDebugEnabled())
+ {
+ LogLog::debug(((LogString) LOG4CXX_STR("FB: Adding logger ["))
+ + logger->getName() + LOG4CXX_STR("]."));
+ }
m_priv->loggers.push_back(logger);
}
@@ -65,9 +68,12 @@ void FallbackErrorHandler::error(const LogString& message,
const std::exception& e,
int, const spi::LoggingEventPtr&) const
{
- LogLog::debug(((LogString) LOG4CXX_STR("FB: The following error reported: "))
- + message, e);
- LogLog::debug(LOG4CXX_STR("FB: INITIATING FALLBACK PROCEDURE."));
+ if (LogLog::isDebugEnabled())
+ {
+ LogLog::debug(((LogString) LOG4CXX_STR("FB: The following error reported: "))
+ + message, e);
+ LogLog::debug(LOG4CXX_STR("FB: INITIATING FALLBACK PROCEDURE."));
+ }
AppenderPtr primaryLocked = m_priv->primary.lock();
AppenderPtr backupLocked = m_priv->backup.lock();
@@ -79,17 +85,23 @@ void FallbackErrorHandler::error(const LogString& message,
for (LoggerPtr l : m_priv->loggers)
{
- LogLog::debug(((LogString) LOG4CXX_STR("FB: Searching for ["))
- + primaryLocked->getName() + LOG4CXX_STR("] in logger [")
- + l->getName() + LOG4CXX_STR("]."));
- LogLog::debug(((LogString) LOG4CXX_STR("FB: Replacing ["))
- + primaryLocked->getName() + LOG4CXX_STR("] by [")
- + backupLocked->getName() + LOG4CXX_STR("] in logger [")
- + l->getName() + LOG4CXX_STR("]."));
+ if (LogLog::isDebugEnabled())
+ {
+ LogLog::debug(((LogString) LOG4CXX_STR("FB: Searching for ["))
+ + primaryLocked->getName() + LOG4CXX_STR("] in logger [")
+ + l->getName() + LOG4CXX_STR("]."));
+ LogLog::debug(((LogString) LOG4CXX_STR("FB: Replacing ["))
+ + primaryLocked->getName() + LOG4CXX_STR("] by [")
+ + backupLocked->getName() + LOG4CXX_STR("] in logger [")
+ + l->getName() + LOG4CXX_STR("]."));
+ }
l->removeAppender(primaryLocked);
- LogLog::debug(((LogString) LOG4CXX_STR("FB: Adding appender ["))
- + backupLocked->getName() + LOG4CXX_STR("] to logger ")
- + l->getName());
+ if (LogLog::isDebugEnabled())
+ {
+ LogLog::debug(((LogString) LOG4CXX_STR("FB: Adding appender ["))
+ + backupLocked->getName() + LOG4CXX_STR("] to logger ")
+ + l->getName());
+ }
l->addAppender(backupLocked);
}
m_priv->errorReported = true;
@@ -97,15 +109,21 @@ void FallbackErrorHandler::error(const LogString& message,
void FallbackErrorHandler::setAppender(const AppenderPtr& primary1)
{
- LogLog::debug(((LogString) LOG4CXX_STR("FB: Setting primary appender to ["))
- + primary1->getName() + LOG4CXX_STR("]."));
+ if (LogLog::isDebugEnabled())
+ {
+ LogLog::debug(((LogString) LOG4CXX_STR("FB: Setting primary appender to ["))
+ + primary1->getName() + LOG4CXX_STR("]."));
+ }
m_priv->primary = primary1;
}
void FallbackErrorHandler::setBackupAppender(const AppenderPtr& backup1)
{
- LogLog::debug(((LogString) LOG4CXX_STR("FB: Setting backup appender to ["))
- + backup1->getName() + LOG4CXX_STR("]."));
+ if (LogLog::isDebugEnabled())
+ {
+ LogLog::debug(((LogString) LOG4CXX_STR("FB: Setting backup appender to ["))
+ + backup1->getName() + LOG4CXX_STR("]."));
+ }
m_priv->backup = backup1;
// Make sure that we keep a reference to the appender around, since otherwise
diff --git a/src/main/cpp/filewatchdog.cpp b/src/main/cpp/filewatchdog.cpp
index df949c15..351358be 100644
--- a/src/main/cpp/filewatchdog.cpp
+++ b/src/main/cpp/filewatchdog.cpp
@@ -105,17 +105,20 @@ const File& FileWatchdog::file()
void FileWatchdog::checkAndConfigure()
{
- LogString msg(LOG4CXX_STR("Checking ["));
- msg += m_priv->file.getPath();
- msg += LOG4CXX_STR("]");
- LogLog::debug(msg);
+ if (LogLog::isDebugEnabled())
+ {
+ LogString msg(LOG4CXX_STR("Checking ["));
+ msg += m_priv->file.getPath();
+ msg += LOG4CXX_STR("]");
+ LogLog::debug(msg);
+ }
Pool pool1;
if (!m_priv->file.exists(pool1))
{
if (!m_priv->warnedAlready)
{
- LogLog::debug(((LogString) LOG4CXX_STR("["))
+ LogLog::warn(LOG4CXX_STR("[")
+ m_priv->file.getPath()
+ LOG4CXX_STR("] does not exist."));
m_priv->warnedAlready = true;
@@ -136,12 +139,15 @@ void FileWatchdog::checkAndConfigure()
void FileWatchdog::run()
{
- LogString msg(LOG4CXX_STR("Checking ["));
- msg += m_priv->file.getPath();
- msg += LOG4CXX_STR("] at ");
- StringHelper::toString((int)m_priv->delay, m_priv->pool, msg);
- msg += LOG4CXX_STR(" ms interval");
- LogLog::debug(msg);
+ if (LogLog::isDebugEnabled())
+ {
+ LogString msg(LOG4CXX_STR("Checking ["));
+ msg += m_priv->file.getPath();
+ msg += LOG4CXX_STR("] at ");
+ StringHelper::toString((int)m_priv->delay, m_priv->pool, msg);
+ msg += LOG4CXX_STR(" ms interval");
+ LogLog::debug(msg);
+ }
while (!is_interrupted())
{
@@ -151,10 +157,13 @@ void FileWatchdog::run()
checkAndConfigure();
}
- LogString msg2(LOG4CXX_STR("Stop checking ["));
- msg2 += m_priv->file.getPath();
- msg2 += LOG4CXX_STR("]");
- LogLog::debug(msg2);
+ if (LogLog::isDebugEnabled())
+ {
+ LogString msg2(LOG4CXX_STR("Stop checking ["));
+ msg2 += m_priv->file.getPath();
+ msg2 += LOG4CXX_STR("]");
+ LogLog::debug(msg2);
+ }
}
void FileWatchdog::start()
diff --git a/src/main/cpp/loglog.cpp b/src/main/cpp/loglog.cpp
index f9c58cdb..71b79710 100644
--- a/src/main/cpp/loglog.cpp
+++ b/src/main/cpp/loglog.cpp
@@ -66,12 +66,18 @@ LogLog& LogLog::getInstance()
return internalLogger;
}
-void LogLog::setInternalDebugging(bool debugEnabled1)
+bool LogLog::isDebugEnabled()
{
auto p = getInstance().m_priv.get();
- std::lock_guard<std::mutex> lock(p->mutex);
+ return p && !p->quietMode // Not deleted by onexit processing?
+ && p->debugEnabled;
+}
- p->debugEnabled = debugEnabled1;
+void LogLog::setInternalDebugging(bool debugEnabled1)
+{
+ auto p = getInstance().m_priv.get();
+ if (p && !p->quietMode) // Not deleted by onexit processing?
+ p->debugEnabled = debugEnabled1;
}
void LogLog::debug(const LogString& msg)
diff --git a/src/main/cpp/optionconverter.cpp b/src/main/cpp/optionconverter.cpp
index 46c41e83..eb30bcbe 100644
--- a/src/main/cpp/optionconverter.cpp
+++ b/src/main/cpp/optionconverter.cpp
@@ -313,10 +313,13 @@ LevelPtr OptionConverter::toLevel(const LogString& value,
}
else
{
- LogLog::debug(
- ((LogString) LOG4CXX_STR("OptionConverter::toLevel: no class name specified, \
level=["))
- + value
- + LOG4CXX_STR("]"));
+ if (LogLog::isDebugEnabled())
+ {
+ LogLog::debug(
+ ((LogString) LOG4CXX_STR("OptionConverter::toLevel: no class name specified, \
level=[")) + + value
+ + LOG4CXX_STR("]"));
+ }
// no class name specified : use standard Level class
return Level::toLevelLS(value, defaultValue);
}
@@ -324,8 +327,13 @@ LevelPtr OptionConverter::toLevel(const LogString& value,
LogString clazz = value.substr(hashIndex + 1);
LogString levelName = value.substr(0, hashIndex);
- LogLog::debug(((LogString) LOG4CXX_STR("OptionConverter::toLevel: class=["))
- + clazz + LOG4CXX_STR("], level=[") + levelName + LOG4CXX_STR("]"));
+ if (LogLog::isDebugEnabled())
+ {
+ LogLog::debug(LOG4CXX_STR("OptionConverter::toLevel: class=[")
+ + clazz + LOG4CXX_STR("], level=[")
+ + levelName + LOG4CXX_STR("]")
+ );
+ }
// This is degenerate case but you never know.
if (levelName.empty())
@@ -427,7 +435,8 @@ void OptionConverter::selectAndConfigure(const File& \
configFileName,
if (!clazz.empty())
{
- LogLog::debug(LOG4CXX_STR("Preferred configurator class: ") + clazz);
+ if (LogLog::isDebugEnabled())
+ LogLog::debug(LOG4CXX_STR("Preferred configurator class: ") + clazz);
const Class& clazzObj = Loader::loadClass(clazz);
ObjectPtr obj = ObjectPtr(clazzObj.newInstance());
configurator = LOG4CXX_NS::cast<Configurator>(obj);
diff --git a/src/main/cpp/patternlayout.cpp b/src/main/cpp/patternlayout.cpp
index 4e59a461..371e47d7 100644
--- a/src/main/cpp/patternlayout.cpp
+++ b/src/main/cpp/patternlayout.cpp
@@ -149,8 +149,12 @@ void PatternLayout::setOption(const LogString& option, const \
LogString& value) LOG4CXX_STR("ERRORCOLOR"),
LOG4CXX_STR("errorcolor"))){
m_priv->m_errorColor = value;
- LogLog::debug(LOG4CXX_STR("Setting error color to "));
- LogLog::debug(value);
+ if (LogLog::isDebugEnabled())
+ {
+ LogString msg(LOG4CXX_STR("Setting error color to "));
+ msg += value;
+ LogLog::debug(msg);
+ }
}else if(StringHelper::equalsIgnoreCase(option,
LOG4CXX_STR("FATALCOLOR"),
LOG4CXX_STR("fatalcolor"))){
diff --git a/src/main/cpp/propertyconfigurator.cpp \
b/src/main/cpp/propertyconfigurator.cpp index c06929e8..7141ea27 100644
--- a/src/main/cpp/propertyconfigurator.cpp
+++ b/src/main/cpp/propertyconfigurator.cpp
@@ -106,9 +106,12 @@ spi::ConfigurationStatus PropertyConfigurator::doConfigure(const \
File& configFil
try
{
- LogString debugMsg = LOG4CXX_STR("Loading configuration file [")
- + configFileName.getPath() + LOG4CXX_STR("].");
- LogLog::debug(debugMsg);
+ if (LogLog::isDebugEnabled())
+ {
+ LogString debugMsg = LOG4CXX_STR("Loading configuration file [")
+ + configFileName.getPath() + LOG4CXX_STR("].");
+ LogLog::debug(debugMsg);
+ }
return doConfigure(props, hierarchy);
}
catch (const std::exception& ex)
@@ -176,9 +179,12 @@ spi::ConfigurationStatus \
PropertyConfigurator::doConfigure(helpers::Properties& if (!thresholdStr.empty())
{
hierarchy->setThreshold(OptionConverter::toLevel(thresholdStr, Level::getAll()));
- LogLog::debug(((LogString) LOG4CXX_STR("Hierarchy threshold set to ["))
- + hierarchy->getThreshold()->toString()
- + LOG4CXX_STR("]."));
+ if (LogLog::isDebugEnabled())
+ {
+ LogLog::debug(((LogString) LOG4CXX_STR("Hierarchy threshold set to ["))
+ + hierarchy->getThreshold()->toString()
+ + LOG4CXX_STR("]."));
+ }
}
LogString threadConfigurationValue(properties.getProperty(LOG4CXX_STR("log4j.threadConfiguration")));
@@ -222,10 +228,13 @@ void \
PropertyConfigurator::configureLoggerFactory(helpers::Properties& props)
if (!factoryClassName.empty())
{
- LogString msg(LOG4CXX_STR("Setting logger factory to ["));
- msg += factoryClassName;
- msg += LOG4CXX_STR("].");
- LogLog::debug(msg);
+ if (LogLog::isDebugEnabled())
+ {
+ LogString msg(LOG4CXX_STR("Setting logger factory to ["));
+ msg += factoryClassName;
+ msg += LOG4CXX_STR("].");
+ LogLog::debug(msg);
+ }
std::shared_ptr<Object> instance = std::shared_ptr<Object>(
Loader::loadClass(factoryClassName).newInstance() );
@@ -306,17 +315,22 @@ bool \
PropertyConfigurator::parseAdditivityForLogger(helpers::Properties& props,
LogString value(OptionConverter::findAndSubst(ADDITIVITY_PREFIX.value() + \
loggerName, props));
- LogLog::debug((LogString) LOG4CXX_STR("Handling ") + ADDITIVITY_PREFIX.value()
- + loggerName + LOG4CXX_STR("=[") + value + LOG4CXX_STR("]"));
-
+ if (LogLog::isDebugEnabled())
+ {
+ LogLog::debug((LogString) LOG4CXX_STR("Handling ") + ADDITIVITY_PREFIX.value()
+ + loggerName + LOG4CXX_STR("=[") + value + LOG4CXX_STR("]"));
+ }
// touch additivity only if necessary
if (!value.empty())
{
bool additivity = OptionConverter::toBoolean(value, true);
- LogLog::debug(((LogString) LOG4CXX_STR("Setting additivity for \""))
- + loggerName
- + ((additivity) ? LOG4CXX_STR("\" to true") :
- LOG4CXX_STR("\" to false")));
+ if (LogLog::isDebugEnabled())
+ {
+ LogLog::debug(((LogString) LOG4CXX_STR("Setting additivity for \""))
+ + loggerName
+ + ((additivity) ? LOG4CXX_STR("\" to true") :
+ LOG4CXX_STR("\" to false")));
+ }
return additivity;
}
@@ -331,10 +345,13 @@ void PropertyConfigurator::parseLogger(
helpers::Properties& props, LoggerPtr& logger, const LogString& /* optionKey */,
const LogString& loggerName, const LogString& value, bool additivity)
{
- LogLog::debug(((LogString) LOG4CXX_STR("Parsing for ["))
- + loggerName
- + LOG4CXX_STR("] with value=[")
- + value + LOG4CXX_STR("]."));
+ if (LogLog::isDebugEnabled())
+ {
+ LogLog::debug(((LogString) LOG4CXX_STR("Parsing for ["))
+ + loggerName
+ + LOG4CXX_STR("] with value=[")
+ + value + LOG4CXX_STR("]."));
+ }
// We must skip over ',' but not white space
StringTokenizer st(value, LOG4CXX_STR(","));
@@ -350,8 +367,11 @@ void PropertyConfigurator::parseLogger(
}
LogString levelStr = st.nextToken();
- LogLog::debug((LogString) LOG4CXX_STR("Level token is [")
- + levelStr + LOG4CXX_STR("]."));
+ if (LogLog::isDebugEnabled())
+ {
+ LogLog::debug((LogString) LOG4CXX_STR("Level token is [")
+ + levelStr + LOG4CXX_STR("]."));
+ }
// If the level value is inherited, set logger level value to
@@ -369,17 +389,23 @@ void PropertyConfigurator::parseLogger(
else
{
logger->setLevel(0);
- LogLog::debug((LogString) LOG4CXX_STR("Logger ")
- + loggerName + LOG4CXX_STR(" set to null"));
+ if (LogLog::isDebugEnabled())
+ {
+ LogLog::debug((LogString) LOG4CXX_STR("Logger ")
+ + loggerName + LOG4CXX_STR(" set to null"));
+ }
}
}
else
{
logger->setLevel(OptionConverter::toLevel(levelStr, Level::getDebug()));
- LogLog::debug((LogString) LOG4CXX_STR("Logger ")
- + loggerName + LOG4CXX_STR(" set to ")
- + logger->getLevel()->toString());
+ if (LogLog::isDebugEnabled())
+ {
+ LogLog::debug((LogString) LOG4CXX_STR("Logger ")
+ + loggerName + LOG4CXX_STR(" set to ")
+ + logger->getLevel()->toString());
+ }
}
}
@@ -397,8 +423,11 @@ void PropertyConfigurator::parseLogger(
continue;
}
- LogLog::debug(LOG4CXX_STR("Parsing appender named ")
- + appenderName + LOG4CXX_STR("\"."));
+ if (LogLog::isDebugEnabled())
+ {
+ LogLog::debug(LOG4CXX_STR("Parsing appender named ")
+ + appenderName + LOG4CXX_STR("\"."));
+ }
appender = parseAppender(props, appenderName);
if (appender != 0)
@@ -417,8 +446,11 @@ AppenderPtr PropertyConfigurator::parseAppender(
if (appender != 0)
{
- LogLog::debug((LogString) LOG4CXX_STR("Appender \"")
- + appenderName + LOG4CXX_STR("\" was already parsed."));
+ if (LogLog::isDebugEnabled())
+ {
+ LogLog::debug((LogString) LOG4CXX_STR("Appender \"")
+ + appenderName + LOG4CXX_STR("\" was already parsed."));
+ }
return appender;
}
@@ -468,12 +500,18 @@ AppenderPtr PropertyConfigurator::parseAppender(
if (layout != 0)
{
appender->setLayout(layout);
- LogLog::debug((LogString) LOG4CXX_STR("Parsing layout options for \"")
- + appenderName + LOG4CXX_STR("\"."));
+ if (LogLog::isDebugEnabled())
+ {
+ LogLog::debug((LogString) LOG4CXX_STR("Parsing layout options for \"")
+ + appenderName + LOG4CXX_STR("\"."));
+ }
PropertySetter::setProperties(layout, props, layoutPrefix + LOG4CXX_STR("."), \
p);
- LogLog::debug((LogString) LOG4CXX_STR("End of parsing for \"")
- + appenderName + LOG4CXX_STR("\"."));
+ if (LogLog::isDebugEnabled())
+ {
+ LogLog::debug((LogString) LOG4CXX_STR("End of parsing for \"")
+ + appenderName + LOG4CXX_STR("\"."));
+ }
}
}
@@ -492,8 +530,11 @@ AppenderPtr PropertyConfigurator::parseAppender(
{
rolling->setRollingPolicy(rollingPolicy);
- LogLog::debug((LogString) LOG4CXX_STR("Parsing rolling policy options for \"")
- + appenderName + LOG4CXX_STR("\"."));
+ if (LogLog::isDebugEnabled())
+ {
+ LogLog::debug((LogString) LOG4CXX_STR("Parsing rolling policy options for \"")
+ + appenderName + LOG4CXX_STR("\"."));
+ }
PropertySetter::setProperties(rollingPolicy, props, rollingPolicyKey + \
LOG4CXX_STR("."), p); }
}
@@ -510,16 +551,22 @@ AppenderPtr PropertyConfigurator::parseAppender(
{
rolling->setTriggeringPolicy(triggeringPolicy);
- LogLog::debug((LogString) LOG4CXX_STR("Parsing triggering policy options for \
\"")
- + appenderName + LOG4CXX_STR("\"."));
+ if (LogLog::isDebugEnabled())
+ {
+ 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);
- LogLog::debug((LogString) LOG4CXX_STR("Parsed \"")
- + appenderName + LOG4CXX_STR("\" options."));
+ if (LogLog::isDebugEnabled())
+ {
+ LogLog::debug((LogString) LOG4CXX_STR("Parsed \"")
+ + appenderName + LOG4CXX_STR("\" options."));
+ }
}
registryPut(appender);
diff --git a/src/main/cpp/propertysetter.cpp b/src/main/cpp/propertysetter.cpp
index ddbb4907..bc1a028b 100644
--- a/src/main/cpp/propertysetter.cpp
+++ b/src/main/cpp/propertysetter.cpp
@@ -89,8 +89,11 @@ void PropertySetter::setProperty(const LogString& option,
if (obj != 0 && obj->instanceof(OptionHandler::getStaticClass()))
{
- LogLog::debug(LOG4CXX_STR("Setting option name=[") +
- option + LOG4CXX_STR("], value=[") + value + LOG4CXX_STR("]"));
+ if (LogLog::isDebugEnabled())
+ {
+ LogLog::debug(LOG4CXX_STR("Setting option name=[") +
+ option + LOG4CXX_STR("], value=[") + value + LOG4CXX_STR("]"));
+ }
OptionHandlerPtr handler = LOG4CXX_NS::cast<OptionHandler>(obj);
handler->setOption(option, value);
}
diff --git a/src/main/cpp/socketappenderskeleton.cpp \
b/src/main/cpp/socketappenderskeleton.cpp index d0e8b47d..993294bb 100644
--- a/src/main/cpp/socketappenderskeleton.cpp
+++ b/src/main/cpp/socketappenderskeleton.cpp
@@ -85,11 +85,14 @@ void SocketAppenderSkeleton::connect(Pool& p)
try
{
- LogString msg(LOG4CXX_STR("Connecting to [")
- + _priv->address->toString() + LOG4CXX_STR(":"));
- StringHelper::toString(_priv->port, p, msg);
- msg += LOG4CXX_STR("].");
- LogLog::debug(msg);
+ if (LogLog::isDebugEnabled())
+ {
+ LogString msg(LOG4CXX_STR("Connecting to [")
+ + _priv->address->toString() + LOG4CXX_STR(":"));
+ StringHelper::toString(_priv->port, p, msg);
+ msg += LOG4CXX_STR("].");
+ LogLog::debug(msg);
+ }
SocketPtr socket = Socket::create(_priv->address, _priv->port);
setSocket(socket, p);
}
@@ -151,14 +154,20 @@ void SocketAppenderSkeleton::monitor()
{
try
{
- LogString msg(LOG4CXX_STR("Attempting connection to [")
- + _priv->address->toString() + LOG4CXX_STR(":"));
- StringHelper::toString(_priv->port, p, msg);
- msg += LOG4CXX_STR("].");
- LogLog::debug(msg);
+ if (LogLog::isDebugEnabled())
+ {
+ LogString msg(LOG4CXX_STR("Attempting connection to [")
+ + _priv->address->toString() + LOG4CXX_STR(":"));
+ StringHelper::toString(_priv->port, p, msg);
+ msg += LOG4CXX_STR("].");
+ LogLog::debug(msg);
+ }
socket = Socket::create(_priv->address, _priv->port);
setSocket(socket, p);
- LogLog::debug(LOG4CXX_STR("Connection established. Exiting connector thread."));
+ if (LogLog::isDebugEnabled())
+ {
+ LogLog::debug(LOG4CXX_STR("Connection established. Exiting connector thread."));
+ }
return;
}
catch (ConnectException& e)
@@ -178,13 +187,16 @@ void SocketAppenderSkeleton::monitor()
if (_priv->reconnectionDelay > 0)
{
- LogString msg(LOG4CXX_STR("Waiting "));
- StringHelper::toString(_priv->reconnectionDelay, p, msg);
- msg += LOG4CXX_STR(" ms before retrying [")
- + _priv->address->toString() + LOG4CXX_STR(":");
- StringHelper::toString(_priv->port, p, msg);
- msg += LOG4CXX_STR("].");
- LogLog::debug(msg);
+ if (LogLog::isDebugEnabled())
+ {
+ LogString msg(LOG4CXX_STR("Waiting "));
+ StringHelper::toString(_priv->reconnectionDelay, p, msg);
+ msg += LOG4CXX_STR(" ms before retrying [")
+ + _priv->address->toString() + LOG4CXX_STR(":");
+ StringHelper::toString(_priv->port, p, msg);
+ msg += LOG4CXX_STR("].");
+ LogLog::debug(msg);
+ }
std::unique_lock<std::mutex> lock( _priv->interrupt_mutex );
if (_priv->interrupt.wait_for( lock, std::chrono::milliseconds( \
_priv->reconnectionDelay ),
diff --git a/src/main/cpp/transcoder.cpp b/src/main/cpp/transcoder.cpp
index d7e7b80f..55903af1 100644
--- a/src/main/cpp/transcoder.cpp
+++ b/src/main/cpp/transcoder.cpp
@@ -627,11 +627,14 @@ void Transcoder::decode(const CFStringRef& src, LogString& dst)
{
auto length = CFStringGetLength(src);
#if defined(_DEBUG)
- Pool pool;
- LogString msg(LOG4CXX_STR("Transcoder::decodeCFString"));
- msg += LOG4CXX_STR(" length ");
- StringHelper::toString((size_t)length, pool, msg);
- LogLog::debug(msg);
+ if (LogLog::isDebugEnabled())
+ {
+ Pool pool;
+ LogString msg(LOG4CXX_STR("Transcoder::decodeCFString"));
+ msg += LOG4CXX_STR(" length ");
+ StringHelper::toString((size_t)length, pool, msg);
+ LogLog::debug(msg);
+ }
#endif
if (length > 0)
diff --git a/src/main/include/log4cxx/helpers/loglog.h \
b/src/main/include/log4cxx/helpers/loglog.h index 66f8e0ec..794b963c 100644
--- a/src/main/include/log4cxx/helpers/loglog.h
+++ b/src/main/include/log4cxx/helpers/loglog.h
@@ -52,6 +52,11 @@ class LOG4CXX_EXPORT LogLog
public:
~LogLog();
+ /**
+ * Is internal debugging enabled?
+ **/
+ static bool isDebugEnabled();
+
/**
Use the value of \c enabled as the new internal debug logging state.
*/
@@ -104,7 +109,8 @@ class LOG4CXX_EXPORT LogLog
} // namespace log4cxx
#define LOGLOG_DEBUG(log) { \
- LOG4CXX_NS::helpers::LogLog::debug(log) ; }
+ if (LogLog::isDebugEnabled()) \
+ LOG4CXX_NS::helpers::LogLog::debug(log) ; }
#define LOGLOG_WARN(log) { \
LOG4CXX_NS::helpers::LogLog::warn(log) ; }
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic