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 9e310718 Simplify the Appender interface in a future ABI version (#642)
9e310718 is described below
commit 9e310718b3b62b975b8d7da00e0b328e3d2797e3
Author: Stephen Webb <[email protected]>
AuthorDate: Mon May 4 11:51:16 2026 +1000
Simplify the Appender interface in a future ABI version (#642)
---
src/examples/cpp/custom-appender.cpp | 2 +-
src/main/cpp/CMakeLists.txt | 1 +
.../vectorappender.cpp => main/cpp/appender.cpp} | 31 ++++++---------
src/main/cpp/appenderattachableimpl.cpp | 10 ++++-
src/main/cpp/appenderskeleton.cpp | 8 ++--
src/main/cpp/asyncappender.cpp | 22 ++++++-----
src/main/cpp/dbappender.cpp | 5 ++-
src/main/cpp/fallbackerrorhandler.cpp | 3 +-
src/main/cpp/loader.cpp | 1 -
src/main/cpp/logger.cpp | 46 ++++++++++------------
src/main/cpp/multiprocessrollingfileappender.cpp | 37 +++++++++++------
src/main/cpp/nteventlogappender.cpp | 7 ++--
src/main/cpp/odbcappender.cpp | 4 +-
src/main/cpp/outputdebugstringappender.cpp | 5 ++-
src/main/cpp/rollingfileappender.cpp | 26 ++++++++----
src/main/cpp/smtpappender.cpp | 3 +-
src/main/cpp/syslogappender.cpp | 5 ++-
src/main/cpp/telnetappender.cpp | 7 ++--
src/main/cpp/writerappender.cpp | 13 +++---
src/main/cpp/xmlsocketappender.cpp | 3 +-
src/main/include/log4cxx/appender.h | 19 ++++++++-
src/main/include/log4cxx/appenderskeleton.h | 7 ++--
src/main/include/log4cxx/asyncappender.h | 5 +--
src/main/include/log4cxx/db/dbappender.h | 2 +-
src/main/include/log4cxx/db/odbcappender.h | 2 +-
.../log4cxx/helpers/appenderattachableimpl.h | 8 ++++
src/main/include/log4cxx/logger.h | 11 ++++++
src/main/include/log4cxx/net/smtpappender.h | 2 +-
src/main/include/log4cxx/net/syslogappender.h | 2 +-
src/main/include/log4cxx/net/telnetappender.h | 2 +-
src/main/include/log4cxx/net/xmlsocketappender.h | 2 +-
src/main/include/log4cxx/nt/nteventlogappender.h | 2 +-
.../include/log4cxx/nt/outputdebugstringappender.h | 2 +-
.../rolling/multiprocessrollingfileappender.h | 10 ++++-
.../include/log4cxx/rolling/rollingfileappender.h | 8 +++-
src/main/include/log4cxx/writerappender.h | 4 +-
src/site/doxy/Doxyfile.in | 7 +++-
src/test/cpp/asyncappendertestcase.cpp | 10 ++---
src/test/cpp/benchmark/benchmark.cpp | 2 +-
src/test/cpp/levelchangetestcase.cpp | 2 +-
src/test/cpp/loggertestcase.cpp | 2 +-
src/test/cpp/nt/nteventlogappendertestcase.cpp | 4 +-
src/test/cpp/optionhandlertest.cpp | 4 +-
src/test/cpp/rolling/manualrollingtest.cpp | 2 +-
src/test/cpp/vectorappender.cpp | 2 +-
src/test/cpp/vectorappender.h | 2 +-
46 files changed, 220 insertions(+), 144 deletions(-)
diff --git a/src/examples/cpp/custom-appender.cpp
b/src/examples/cpp/custom-appender.cpp
index 598abeca..cd67f1de 100644
--- a/src/examples/cpp/custom-appender.cpp
+++ b/src/examples/cpp/custom-appender.cpp
@@ -40,7 +40,7 @@ public:
return false;
}
- void append(const spi::LoggingEventPtr& event, helpers::Pool& p)
override {
+ void append( LOG4CXX_APPEND_FORMAL_PARAMETERS ) override {
// This gets called whenever there is a valid event for our
appender.
}
diff --git a/src/main/cpp/CMakeLists.txt b/src/main/cpp/CMakeLists.txt
index dcbe526d..5273700f 100644
--- a/src/main/cpp/CMakeLists.txt
+++ b/src/main/cpp/CMakeLists.txt
@@ -84,6 +84,7 @@ target_sources(log4cxx
PRIVATE
action.cpp
andfilter.cpp
+ appender.cpp
appenderattachableimpl.cpp
appenderskeleton.cpp
aprinitializer.cpp
diff --git a/src/test/cpp/vectorappender.cpp b/src/main/cpp/appender.cpp
similarity index 59%
copy from src/test/cpp/vectorappender.cpp
copy to src/main/cpp/appender.cpp
index aa7999a3..1e512204 100644
--- a/src/test/cpp/vectorappender.cpp
+++ b/src/main/cpp/appender.cpp
@@ -14,29 +14,22 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+#include <log4cxx/appender.h>
+#include <log4cxx/helpers/pool.h>
-#include "vectorappender.h"
-#include <log4cxx/private/appenderskeleton_priv.h>
-#include <thread>
+using namespace LOG4CXX_NS;
-using namespace log4cxx;
-using namespace log4cxx::helpers;
+IMPLEMENT_LOG4CXX_OBJECT(Appender)
-IMPLEMENT_LOG4CXX_OBJECT(VectorAppender)
-
-void VectorAppender::append(const spi::LoggingEventPtr& event, Pool& /*p*/)
+#if LOG4CXX_ABI_VERSION <= 15
+void Appender::doAppend(const spi::LoggingEventPtr& event)
{
- if (0 < this->appendMillisecondDelay)
- std::this_thread::sleep_for( std::chrono::milliseconds(
this->appendMillisecondDelay ) );
- this->vector.push_back(event);
+ helpers::Pool p;
+ doAppend(event, p);
}
-
-bool VectorAppender::isClosed() const
-{
- return m_priv->closed;
-}
-
-void VectorAppender::close()
+#else
+void Appender::doAppend(const spi::LoggingEventPtr& event, helpers::Pool&)
{
- m_priv->closed = true;
+ doAppend(event);
}
+#endif
diff --git a/src/main/cpp/appenderattachableimpl.cpp
b/src/main/cpp/appenderattachableimpl.cpp
index 304b7061..e56ac0af 100644
--- a/src/main/cpp/appenderattachableimpl.cpp
+++ b/src/main/cpp/appenderattachableimpl.cpp
@@ -96,7 +96,7 @@ void AppenderAttachableImpl::addAppender(const AppenderPtr
newAppender)
m_priv = std::make_unique<priv_data>(AppenderList{newAppender});
}
-int AppenderAttachableImpl::appendLoopOnAppenders(const spi::LoggingEventPtr&
event, Pool& p)
+int AppenderAttachableImpl::appendLoopOnAppenders(const spi::LoggingEventPtr&
event)
{
int result = 0;
if (m_priv)
@@ -104,12 +104,18 @@ int AppenderAttachableImpl::appendLoopOnAppenders(const
spi::LoggingEventPtr& ev
auto allAppenders = m_priv->getAppenders();
for (auto& appender : *allAppenders)
{
- appender->doAppend(event, p);
+ appender->doAppend(event);
++result;
}
}
return result;
}
+#if LOG4CXX_ABI_VERSION <= 15
+int AppenderAttachableImpl::appendLoopOnAppenders(const spi::LoggingEventPtr&
event, helpers::Pool& p)
+{
+ return appendLoopOnAppenders(event);
+}
+#endif
AppenderList AppenderAttachableImpl::getAllAppenders() const
{
diff --git a/src/main/cpp/appenderskeleton.cpp
b/src/main/cpp/appenderskeleton.cpp
index 030c7572..a23ec9c0 100644
--- a/src/main/cpp/appenderskeleton.cpp
+++ b/src/main/cpp/appenderskeleton.cpp
@@ -94,14 +94,14 @@ bool AppenderSkeleton::isAsSevereAsThreshold(const
LevelPtr& level) const
return ((level == 0) || level->isGreaterOrEqual(m_priv->threshold));
}
-void AppenderSkeleton::doAppend(const spi::LoggingEventPtr& event, Pool& pool1)
+void AppenderSkeleton::doAppend( LOG4CXX_APPEND_FORMAL_PARAMETERS )
{
std::lock_guard<std::recursive_mutex> lock(m_priv->mutex);
- doAppendImpl(event, pool1);
+ doAppendImpl( LOG4CXX_APPEND_PARAMETERS );
}
-void AppenderSkeleton::doAppendImpl(const spi::LoggingEventPtr& event, Pool&
pool)
+void AppenderSkeleton::doAppendImpl( LOG4CXX_APPEND_FORMAL_PARAMETERS )
{
if (m_priv->closed)
{
@@ -110,7 +110,7 @@ void AppenderSkeleton::doAppendImpl(const
spi::LoggingEventPtr& event, Pool& poo
}
else if (isAsSevereAsThreshold(event->getLevel()) && isAccepted(event))
{
- append(event, pool);
+ append( LOG4CXX_APPEND_PARAMETERS );
}
}
diff --git a/src/main/cpp/asyncappender.cpp b/src/main/cpp/asyncappender.cpp
index 9c6f5470..206ba53a 100644
--- a/src/main/cpp/asyncappender.cpp
+++ b/src/main/cpp/asyncappender.cpp
@@ -104,9 +104,10 @@ class DiscardSummary
*
* @return the new event.
*/
- LoggingEventPtr createEvent(Pool& p);
+ LoggingEventPtr createEvent();
#if LOG4CXX_ABI_VERSION <= 15
+ LoggingEventPtr createEvent(Pool&);
static
::LOG4CXX_NS::spi::LoggingEventPtr
createEvent(::LOG4CXX_NS::helpers::Pool& p,
size_t discardedCount);
@@ -340,16 +341,16 @@ void AsyncAppender::setOption(const LogString& option,
}
-void AsyncAppender::doAppend(const spi::LoggingEventPtr& event, Pool& pool1)
+void AsyncAppender::doAppend( LOG4CXX_APPEND_FORMAL_PARAMETERS )
{
- doAppendImpl(event, pool1);
+ doAppendImpl( LOG4CXX_APPEND_PARAMETERS );
}
-void AsyncAppender::append(const spi::LoggingEventPtr& event, Pool& p)
+void AsyncAppender::append( LOG4CXX_APPEND_FORMAL_PARAMETERS )
{
if (priv->bufferSize <= 0)
{
- priv->appenders.appendLoopOnAppenders(event, p);
+ priv->appenders.appendLoopOnAppenders(event);
return;
}
@@ -585,7 +586,7 @@ void DiscardSummary::add(const LoggingEventPtr& event)
++this->count;
}
-LoggingEventPtr DiscardSummary::createEvent(Pool& p)
+LoggingEventPtr DiscardSummary::createEvent()
{
LogString msg(LOG4CXX_STR("Discarded "));
StringHelper::toString(this->count, msg);
@@ -598,8 +599,10 @@ LoggingEventPtr DiscardSummary::createEvent(Pool& p)
, LocationInfo::getLocationUnavailable()
);
}
-
#if LOG4CXX_ABI_VERSION <= 15
+LoggingEventPtr DiscardSummary::createEvent(Pool&)
+{ return createEvent(); }
+
::LOG4CXX_NS::spi::LoggingEventPtr
DiscardSummary::createEvent(::LOG4CXX_NS::helpers::Pool& p,
size_t discardedCount)
@@ -628,7 +631,6 @@ void AsyncAppender::AsyncAppenderPriv::dispatch(const
LogString& appenderName)
while (isActive)
{
- Pool p;
LoggingEventList events;
events.reserve(this->bufferSize);
for (int count = 0; count < 2 && this->dispatchedCount ==
this->commitCount; ++count)
@@ -658,7 +660,7 @@ void AsyncAppender::AsyncAppenderPriv::dispatch(const
LogString& appenderName)
producerBlockedCount += this->blockedCount;
for (auto& discardItem : this->discardMap)
{
-
events.push_back(discardItem.second.createEvent(p));
+
events.push_back(discardItem.second.createEvent());
discardCount += discardItem.second.getCount();
}
this->discardMap.clear();
@@ -668,7 +670,7 @@ void AsyncAppender::AsyncAppenderPriv::dispatch(const
LogString& appenderName)
{
try
{
- this->appenders.appendLoopOnAppenders(item, p);
+ this->appenders.appendLoopOnAppenders(item);
}
catch (std::exception& ex)
{
diff --git a/src/main/cpp/dbappender.cpp b/src/main/cpp/dbappender.cpp
index 971b7f21..7bf72c52 100644
--- a/src/main/cpp/dbappender.cpp
+++ b/src/main/cpp/dbappender.cpp
@@ -223,7 +223,7 @@ void DBAppender::activateOptions(
LOG4CXX_ACTIVATE_OPTIONS_FORMAL_PARAMETERS )
}
}
-void DBAppender::append(const spi::LoggingEventPtr& event, helpers::Pool& p){
+void DBAppender::append( LOG4CXX_APPEND_FORMAL_PARAMETERS ){
std::vector<std::string> ls_args;
std::vector<const char*> args;
int stat;
@@ -236,9 +236,10 @@ void DBAppender::append(const spi::LoggingEventPtr& event,
helpers::Pool& p){
return;
}
+ helpers::Pool tempPool;
for(auto& converter : _priv->converters){
LogString str_data;
- converter->format(event, str_data, p);
+ converter->format(event, str_data, tempPool);
LOG4CXX_ENCODE_CHAR(new_str_data, str_data);
ls_args.push_back(new_str_data);
}
diff --git a/src/main/cpp/fallbackerrorhandler.cpp
b/src/main/cpp/fallbackerrorhandler.cpp
index 0c027c00..8a1652e8 100644
--- a/src/main/cpp/fallbackerrorhandler.cpp
+++ b/src/main/cpp/fallbackerrorhandler.cpp
@@ -143,8 +143,7 @@ void FallbackErrorHandler::error
m_priv->errorReported = true;
if (event)
{
- Pool p;
- backupLocked->doAppend(event, p);
+ backupLocked->doAppend(event);
}
m_priv->primary = backupLocked;
}
diff --git a/src/main/cpp/loader.cpp b/src/main/cpp/loader.cpp
index 0e07767f..f91af56d 100644
--- a/src/main/cpp/loader.cpp
+++ b/src/main/cpp/loader.cpp
@@ -41,7 +41,6 @@ using namespace LOG4CXX_NS::filter;
IMPLEMENT_LOG4CXX_OBJECT(Object)
IMPLEMENT_LOG4CXX_OBJECT(OptionHandler)
IMPLEMENT_LOG4CXX_OBJECT(ErrorHandler)
-IMPLEMENT_LOG4CXX_OBJECT(Appender)
IMPLEMENT_LOG4CXX_OBJECT(Filter)
IMPLEMENT_LOG4CXX_OBJECT(AppenderAttachable)
IMPLEMENT_LOG4CXX_OBJECT(LoggerFactory)
diff --git a/src/main/cpp/logger.cpp b/src/main/cpp/logger.cpp
index f42dbf16..1efcb34f 100644
--- a/src/main/cpp/logger.cpp
+++ b/src/main/cpp/logger.cpp
@@ -141,7 +141,7 @@ void Logger::reconfigure( const AppenderList& newList, bool
newAdditivity )
replaceAppenders(newList);
}
-void Logger::callAppenders(const spi::LoggingEventPtr& event, Pool& p) const
+void Logger::callAppenders(const spi::LoggingEventPtr& event) const
{
int writes = 0;
@@ -149,7 +149,7 @@ void Logger::callAppenders(const spi::LoggingEventPtr&
event, Pool& p) const
logger != 0;
logger = logger->m_priv->parent.get())
{
- writes += logger->m_priv->aai.appendLoopOnAppenders(event, p);
+ writes += logger->m_priv->aai.appendLoopOnAppenders(event);
if (!logger->m_priv->additive)
{
@@ -164,6 +164,12 @@ void Logger::callAppenders(const spi::LoggingEventPtr&
event, Pool& p) const
rep->emitNoAppenderWarning(this);
}
}
+#if LOG4CXX_ABI_VERSION <= 15
+void Logger::callAppenders(const spi::LoggingEventPtr& event, Pool&) const
+{
+ callAppenders(event);
+}
+#endif
void Logger::closeNestedAppenders()
{
@@ -178,8 +184,7 @@ void Logger::addEvent(const LevelPtr& level,
helpers::AsyncBuffer&& messageAppen
if (!getHierarchy()) // Has removeHierarchy() been called?
return;
auto event = std::make_shared<LoggingEvent>(m_priv->name, level,
location, std::move(messageAppender));
- Pool p;
- callAppenders(event, p);
+ callAppenders(event);
}
void Logger::addEvent(const LevelPtr& level, std::string&& message, const
LocationInfo& location) const
@@ -192,8 +197,7 @@ void Logger::addEvent(const LevelPtr& level, std::string&&
message, const Locati
LOG4CXX_DECODE_CHAR(msg, message);
auto event = std::make_shared<LoggingEvent>(m_priv->name, level,
location, std::move(msg));
#endif
- Pool p;
- callAppenders(event, p);
+ callAppenders(event);
}
void Logger::addFatalEvent(std::string&& message, const LocationInfo&
location) const
@@ -267,8 +271,7 @@ void Logger::forcedLog(const LevelPtr& level, const
std::string& message,
LOG4CXX_DECODE_CHAR(msg, message);
auto event = std::make_shared<LoggingEvent>(m_priv->name, level,
location, std::move(msg));
#endif
- Pool p;
- callAppenders(event, p);
+ callAppenders(event);
}
void Logger::forcedLog(const LevelPtr& level1, const std::string& message)
const
@@ -281,8 +284,7 @@ void Logger::addEventLS(const LevelPtr& level, LogString&&
message, const Locati
if (!getHierarchy()) // Has removeHierarchy() been called?
return;
auto event = std::make_shared<LoggingEvent>(m_priv->name, level,
location, std::move(message));
- Pool p;
- callAppenders(event, p);
+ callAppenders(event);
}
void Logger::forcedLogLS(const LevelPtr& level1, const LogString& message,
@@ -291,8 +293,7 @@ void Logger::forcedLogLS(const LevelPtr& level1, const
LogString& message,
if (!getHierarchy()) // Has removeHierarchy() been called?
return;
auto event = std::make_shared<LoggingEvent>(m_priv->name, level1,
message, location);
- Pool p;
- callAppenders(event, p);
+ callAppenders(event);
}
@@ -857,8 +858,7 @@ void Logger::addEvent(const LevelPtr& level, std::wstring&&
message, const Locat
LOG4CXX_DECODE_WCHAR(msg, message);
auto event = std::make_shared<LoggingEvent>(m_priv->name, level,
location, std::move(msg));
#endif
- Pool p;
- callAppenders(event, p);
+ callAppenders(event);
}
void Logger::addFatalEvent(std::wstring&& message, const LocationInfo&
location) const
@@ -902,8 +902,7 @@ void Logger::forcedLog(const LevelPtr& level, const
std::wstring& message,
LOG4CXX_DECODE_WCHAR(msg, message);
auto event = std::make_shared<LoggingEvent>(m_priv->name, level,
location, std::move(msg));
#endif
- Pool p;
- callAppenders(event, p);
+ callAppenders(event);
}
void Logger::forcedLog(const LevelPtr& level1, const std::wstring& message)
const
@@ -1050,8 +1049,7 @@ void Logger::addEvent(const LevelPtr& level1,
std::basic_string<UniChar>&& messa
return;
LOG4CXX_DECODE_UNICHAR(msg, message);
auto event = std::make_shared<LoggingEvent>(m_priv->name, level1,
location, std::move(msg));
- Pool p;
- callAppenders(event, p);
+ callAppenders(event);
}
void Logger::addFatalEvent(std::basic_string<UniChar>&& message, const
LocationInfo& location) const
@@ -1091,8 +1089,7 @@ void Logger::forcedLog(const LevelPtr& level1, const
std::basic_string<UniChar>&
return;
LOG4CXX_DECODE_UNICHAR(msg, message);
auto event = std::make_shared<LoggingEvent>(m_priv->name, level1,
location, std::move(msg));
- Pool p;
- callAppenders(event, p);
+ callAppenders(event);
}
void Logger::forcedLog(const LevelPtr& level1, const
std::basic_string<UniChar>& message) const
@@ -1102,8 +1099,7 @@ void Logger::forcedLog(const LevelPtr& level1, const
std::basic_string<UniChar>&
LOG4CXX_DECODE_UNICHAR(msg, message);
auto event = std::make_shared<LoggingEvent>(m_priv->name, level1, msg,
LocationInfo::getLocationUnavailable());
- Pool p;
- callAppenders(event, p);
+ callAppenders(event);
}
void Logger::getName(std::basic_string<UniChar>& rv) const
@@ -1241,8 +1237,7 @@ void Logger::forcedLog(const LevelPtr& level, const
CFStringRef& message,
return;
LOG4CXX_DECODE_CFSTRING(msg, message);
auto event = std::make_shared<LoggingEvent>(m_priv->name, level,
location, std::move(msg));
- Pool p;
- callAppenders(event, p);
+ callAppenders(event);
}
void Logger::forcedLog(const LevelPtr& level, const CFStringRef& message) const
@@ -1252,8 +1247,7 @@ void Logger::forcedLog(const LevelPtr& level, const
CFStringRef& message) const
LOG4CXX_DECODE_CFSTRING(msg, message);
auto event = std::make_shared<LoggingEvent>(m_priv->name, level, msg,
LocationInfo::getLocationUnavailable());
- Pool p;
- callAppenders(event, p);
+ callAppenders(event);
}
void Logger::getName(CFStringRef& rv) const
diff --git a/src/main/cpp/multiprocessrollingfileappender.cpp
b/src/main/cpp/multiprocessrollingfileappender.cpp
index 71f16253..b898a0be 100644
--- a/src/main/cpp/multiprocessrollingfileappender.cpp
+++ b/src/main/cpp/multiprocessrollingfileappender.cpp
@@ -246,18 +246,24 @@ bool
MultiprocessRollingFileAppender::getCurrentFileSize(size_t* pSize)
* @return true if rollover performed.
*/
-bool MultiprocessRollingFileAppender::rollover(Pool& p)
+bool MultiprocessRollingFileAppender::rollover()
{
std::lock_guard<std::recursive_mutex> lock(_priv->mutex);
- return synchronizedRollover(p);
+ return synchronizedRollover();
+}
+#if LOG4CXX_ABI_VERSION <= 15
+bool MultiprocessRollingFileAppender::rollover(Pool& p)
+{
+ return rollover();
}
+#endif
/**
* Coordinate a rollover with other processes
* @return true if this process perfomed the rollover.
*/
-bool MultiprocessRollingFileAppender::synchronizedRollover(Pool& p, const
TriggeringPolicyPtr& trigger)
+bool MultiprocessRollingFileAppender::synchronizedRollover(const
TriggeringPolicyPtr& trigger)
{
bool result = false;
LogString fileName = getFile();
@@ -267,6 +273,7 @@ bool
MultiprocessRollingFileAppender::synchronizedRollover(Pool& p, const Trigge
reopenFile(fileName);
else
{
+ helpers::Pool tempPool;
MultiprocessRollingFileAppenderPriv::Lock lk(_priv, fileName);
if (!lk.hasLock())
LogLog::warn(LOG4CXX_STR("Failed to lock ") + fileName);
@@ -274,14 +281,14 @@ bool
MultiprocessRollingFileAppender::synchronizedRollover(Pool& p, const Trigge
reopenFile(fileName);
else if (trigger && !trigger->isTriggeringEvent(this,
_priv->_event, fileName, _priv->fileLength))
;
- else if (auto rollover1 =
_priv->rollingPolicy->rollover(fileName, getAppend(), p))
+ else if (auto rollover1 =
_priv->rollingPolicy->rollover(fileName, getAppend(), tempPool))
{
_priv->close();
if (rollover1->getActiveFileName() == fileName)
{
bool success = true; // A synchronous action is
not required
if (auto pAction = rollover1->getSynchronous())
- success = pAction->execute(p);
+ success = pAction->execute(tempPool);
bool appendToExisting = true;
if (success)
@@ -300,7 +307,7 @@ bool
MultiprocessRollingFileAppender::synchronizedRollover(Pool& p, const Trigge
{
try
{
- asyncAction->execute(p);
+
asyncAction->execute(tempPool);
}
catch (std::exception& ex)
{
@@ -330,10 +337,10 @@ bool
MultiprocessRollingFileAppender::synchronizedRollover(Pool& p, const Trigge
, rollover1->getAppend()
);
_priv->setWriter(createWriter(os));
-
+ helpers::Pool tempPool;
bool success = true; // A synchronous action is
not required
if (auto pAction = rollover1->getSynchronous())
- success = pAction->execute(p);
+ success = pAction->execute(tempPool);
if (success)
{
@@ -350,7 +357,7 @@ bool
MultiprocessRollingFileAppender::synchronizedRollover(Pool& p, const Trigge
{
try
{
- asyncAction->execute(p);
+
asyncAction->execute(tempPool);
}
catch (std::exception& ex)
{
@@ -369,6 +376,12 @@ bool
MultiprocessRollingFileAppender::synchronizedRollover(Pool& p, const Trigge
return result;
}
+#if LOG4CXX_ABI_VERSION <= 15
+bool MultiprocessRollingFileAppender::synchronizedRollover(Pool& p, const
TriggeringPolicyPtr& trigger)
+{
+ return synchronizedRollover(trigger);
+}
+#endif
/**
* re-open \c fileName (used after it has been renamed)
@@ -389,7 +402,7 @@ void MultiprocessRollingFileAppender::reopenFile(const
LogString& fileName)
/**
* {@inheritDoc}
*/
-void MultiprocessRollingFileAppender::subAppend(const LoggingEventPtr& event,
Pool& p)
+void MultiprocessRollingFileAppender::subAppend(
LOG4CXX_APPEND_FORMAL_PARAMETERS )
{
// The rollover check must precede actual writing. This is the
// only correct behavior for time driven triggers.
@@ -404,7 +417,7 @@ void MultiprocessRollingFileAppender::subAppend(const
LoggingEventPtr& event, Po
try
{
_priv->_event = event;
- synchronizedRollover(p, _priv->triggeringPolicy);
+ synchronizedRollover(_priv->triggeringPolicy);
}
catch (std::exception& ex)
{
@@ -419,7 +432,7 @@ void MultiprocessRollingFileAppender::subAppend(const
LoggingEventPtr& event, Po
else if (isAlreadyRolled(fileName, &_priv->fileLength))
reopenFile(fileName);
- FileAppender::subAppend(event, p);
+ FileAppender::subAppend( LOG4CXX_APPEND_PARAMETERS );
}
/**
diff --git a/src/main/cpp/nteventlogappender.cpp
b/src/main/cpp/nteventlogappender.cpp
index c6bff171..553d107c 100644
--- a/src/main/cpp/nteventlogappender.cpp
+++ b/src/main/cpp/nteventlogappender.cpp
@@ -213,7 +213,7 @@ void NTEventLogAppender::activateOptions(
LOG4CXX_ACTIVATE_OPTIONS_FORMAL_PARAME
}
}
-void NTEventLogAppender::append(const LoggingEventPtr& event, Pool& p)
+void NTEventLogAppender::append( LOG4CXX_APPEND_FORMAL_PARAMETERS )
{
if (priv->hEventLog == NULL)
{
@@ -222,8 +222,9 @@ void NTEventLogAppender::append(const LoggingEventPtr&
event, Pool& p)
}
LogString oss;
- this->m_priv->layout->format(oss, event, p);
- wchar_t* msgs = Transcoder::wencode(oss, p);
+ Pool tempPool;
+ this->m_priv->layout->format(oss, event, tempPool);
+ wchar_t* msgs = Transcoder::wencode(oss, tempPool);
BOOL bSuccess = ::ReportEventW(
priv->hEventLog,
getEventType(event),
diff --git a/src/main/cpp/odbcappender.cpp b/src/main/cpp/odbcappender.cpp
index fcad8cd2..b9e9650d 100644
--- a/src/main/cpp/odbcappender.cpp
+++ b/src/main/cpp/odbcappender.cpp
@@ -260,14 +260,14 @@ void ODBCAppender::activateOptions(
LOG4CXX_ACTIVATE_OPTIONS_FORMAL_PARAMETERS )
}
-void ODBCAppender::append(const spi::LoggingEventPtr& event,
LOG4CXX_NS::helpers::Pool& p)
+void ODBCAppender::append( LOG4CXX_APPEND_FORMAL_PARAMETERS )
{
#if LOG4CXX_HAVE_ODBC
_priv->buffer.push_back(event);
if (_priv->buffer.size() >= _priv->bufferSize)
{
- flushBuffer(p);
+ flushBuffer(_priv->pool);
}
#endif
diff --git a/src/main/cpp/outputdebugstringappender.cpp
b/src/main/cpp/outputdebugstringappender.cpp
index e71d6be9..b4e9aa99 100644
--- a/src/main/cpp/outputdebugstringappender.cpp
+++ b/src/main/cpp/outputdebugstringappender.cpp
@@ -32,10 +32,11 @@ OutputDebugStringAppender::OutputDebugStringAppender()
{
}
-void OutputDebugStringAppender::append(const spi::LoggingEventPtr& event,
Pool& p)
+void OutputDebugStringAppender::append( LOG4CXX_APPEND_FORMAL_PARAMETERS )
{
LogString buf;
- this->m_priv->layout->format(buf, event, p);
+ Pool tempPool;
+ this->m_priv->layout->format(buf, event, tempPool);
#if LOG4CXX_WCHAR_T_API
LOG4CXX_ENCODE_WCHAR(wstr, buf);
::OutputDebugStringW(wstr.c_str());
diff --git a/src/main/cpp/rollingfileappender.cpp
b/src/main/cpp/rollingfileappender.cpp
index 463628ad..e5d8ef04 100644
--- a/src/main/cpp/rollingfileappender.cpp
+++ b/src/main/cpp/rollingfileappender.cpp
@@ -286,23 +286,29 @@ bool
RollingFileAppender::RollingFileAppenderPriv::activateOptions()
* @return true if rollover performed.
*/
-bool RollingFileAppender::rollover(Pool& p)
+bool RollingFileAppender::rollover()
{
std::lock_guard<std::recursive_mutex> lock(_priv->mutex);
- return rolloverInternal(p);
+ return rolloverInternal();
+}
+#if LOG4CXX_ABI_VERSION <= 15
+bool RollingFileAppender::rollover(Pool& p)
+{
+ return rollover();
}
+#endif
-bool RollingFileAppender::rolloverInternal(Pool& p)
+bool RollingFileAppender::rolloverInternal()
{
//
// can't roll without a policy
//
if (_priv->rollingPolicy != NULL)
{
-
{
try
{
+ Pool p;
RolloverDescriptionPtr
rollover1(_priv->rollingPolicy->rollover(this->getFile(), this->getAppend(),
p));
if (rollover1 != NULL)
@@ -429,11 +435,17 @@ bool RollingFileAppender::rolloverInternal(Pool& p)
return false;
}
+#if LOG4CXX_ABI_VERSION <= 15
+bool RollingFileAppender::rolloverInternal(Pool&)
+{
+ return rolloverInternal();
+}
+#endif
/**
* {@inheritDoc}
*/
-void RollingFileAppender::subAppend(const LoggingEventPtr& event, Pool& p)
+void RollingFileAppender::subAppend( LOG4CXX_APPEND_FORMAL_PARAMETERS )
{
// The rollover check must precede actual writing. This is the
// only correct behavior for time driven triggers.
@@ -449,7 +461,7 @@ void RollingFileAppender::subAppend(const LoggingEventPtr&
event, Pool& p)
try
{
_priv->_event = event;
- rolloverInternal(p);
+ rolloverInternal();
}
catch (std::exception& ex)
{
@@ -460,7 +472,7 @@ void RollingFileAppender::subAppend(const LoggingEventPtr&
event, Pool& p)
}
}
- FileAppender::subAppend(event, p);
+ FileAppender::subAppend( LOG4CXX_APPEND_PARAMETERS );
}
/**
diff --git a/src/main/cpp/smtpappender.cpp b/src/main/cpp/smtpappender.cpp
index 00be169c..e9605c22 100644
--- a/src/main/cpp/smtpappender.cpp
+++ b/src/main/cpp/smtpappender.cpp
@@ -629,7 +629,7 @@ void SMTPAppender::activateOptions(
LOG4CXX_ACTIVATE_OPTIONS_FORMAL_PARAMETERS )
Perform SMTPAppender specific appending actions, mainly adding
the event to a cyclic buffer and checking if the event triggers
an e-mail to be sent. */
-void SMTPAppender::append(const spi::LoggingEventPtr& event, Pool& p)
+void SMTPAppender::append( LOG4CXX_APPEND_FORMAL_PARAMETERS )
{
if (!checkEntryConditions())
{
@@ -643,6 +643,7 @@ void SMTPAppender::append(const spi::LoggingEventPtr&
event, Pool& p)
if (_priv->evaluator->isTriggeringEvent(event))
{
+ Pool p;
sendBuffer(p);
}
}
diff --git a/src/main/cpp/syslogappender.cpp b/src/main/cpp/syslogappender.cpp
index 5a116274..1217f2d2 100644
--- a/src/main/cpp/syslogappender.cpp
+++ b/src/main/cpp/syslogappender.cpp
@@ -270,16 +270,17 @@ int SyslogAppender::getFacility(
}
}
-void SyslogAppender::append(const spi::LoggingEventPtr& event, Pool& p)
+void SyslogAppender::append( LOG4CXX_APPEND_FORMAL_PARAMETERS )
{
if (!isAsSevereAsThreshold(event->getLevel()))
{
return;
}
+ helpers::Pool tempPool;
LogString msg;
std::string encoded;
- _priv->layout->format(msg, event, p);
+ _priv->layout->format(msg, event, tempPool);
Transcoder::encode(msg, encoded);
diff --git a/src/main/cpp/telnetappender.cpp b/src/main/cpp/telnetappender.cpp
index e0ddda5c..aabf1ae7 100644
--- a/src/main/cpp/telnetappender.cpp
+++ b/src/main/cpp/telnetappender.cpp
@@ -270,19 +270,20 @@ void TelnetAppender::writeStatus(const SocketPtr& socket,
const LogString& msg,
}
}
-void TelnetAppender::append(const spi::LoggingEventPtr& event, Pool& p)
+void TelnetAppender::append( LOG4CXX_APPEND_FORMAL_PARAMETERS )
{
++_priv->eventCount;
if (0 < _priv->activeConnections)
{
+ helpers::Pool tempPool;
LogString msg;
if (_priv->layout)
- _priv->layout->format(msg, event, p);
+ _priv->layout->format(msg, event, tempPool);
else
msg = event->getRenderedMessage();
msg.append(LOG4CXX_STR("\r\n"));
size_t bytesSize = msg.size() * 2;
- char* bytes = p.pstralloc(bytesSize);
+ char* bytes = tempPool.pstralloc(bytesSize);
LogString::const_iterator msgIter(msg.begin());
ByteBuffer buf(bytes, bytesSize);
diff --git a/src/main/cpp/writerappender.cpp b/src/main/cpp/writerappender.cpp
index f86c1b7f..a55eb591 100644
--- a/src/main/cpp/writerappender.cpp
+++ b/src/main/cpp/writerappender.cpp
@@ -88,7 +88,7 @@ void WriterAppender::WriterAppenderPriv::activateOptions()
}
}
-void WriterAppender::append(const spi::LoggingEventPtr& event, Pool& pool1)
+void WriterAppender::append( LOG4CXX_APPEND_FORMAL_PARAMETERS )
{
if (!checkEntryConditions())
@@ -96,7 +96,7 @@ void WriterAppender::append(const spi::LoggingEventPtr&
event, Pool& pool1)
return;
}
- subAppend(event, pool1);
+ subAppend( LOG4CXX_APPEND_PARAMETERS );
}
/**
@@ -215,22 +215,23 @@ void WriterAppender::setEncoding(const LogString& enc)
_priv->encoding = enc;
}
-void WriterAppender::subAppend(const spi::LoggingEventPtr& event, Pool& p)
+void WriterAppender::subAppend( LOG4CXX_APPEND_FORMAL_PARAMETERS )
{
#if ENABLE_FAILING_APPENDER_SIMULATION_TESTING
if (event->getRenderedMessage() == _priv->exceptionTriggeringMessage)
throw RuntimeException(LOG4CXX_STR("Simulated fault"));
#endif
+ Pool tempPool;
LogString msg;
- _priv->layout->format(msg, event, p);
+ _priv->layout->format(msg, event, tempPool);
if (_priv->writer != NULL)
{
- _priv->writer->write(msg, p);
+ _priv->writer->write(msg, tempPool);
if (_priv->immediateFlush)
{
- _priv->writer->flush(p);
+ _priv->writer->flush(tempPool);
}
}
}
diff --git a/src/main/cpp/xmlsocketappender.cpp
b/src/main/cpp/xmlsocketappender.cpp
index 55ccb035..d110a655 100644
--- a/src/main/cpp/xmlsocketappender.cpp
+++ b/src/main/cpp/xmlsocketappender.cpp
@@ -130,10 +130,11 @@ void XMLSocketAppender::XMLSocketAppenderPriv::close()
}
}
-void XMLSocketAppender::append(const spi::LoggingEventPtr& event,
LOG4CXX_NS::helpers::Pool& p)
+void XMLSocketAppender::append( LOG4CXX_APPEND_FORMAL_PARAMETERS )
{
if (_priv->writer)
{
+ Pool p;
LogString output;
_priv->layout->format(output, event, p);
diff --git a/src/main/include/log4cxx/appender.h
b/src/main/include/log4cxx/appender.h
index 1289cea0..45878b5c 100644
--- a/src/main/include/log4cxx/appender.h
+++ b/src/main/include/log4cxx/appender.h
@@ -88,9 +88,26 @@ class LOG4CXX_EXPORT Appender
Loggers will call the <code>doAppend</code> method of appender
implementations in order to log.
*/
+#if LOG4CXX_ABI_VERSION <= 15
+#define LOG4CXX_APPEND_FORMAL_PARAMETERS const spi::LoggingEventPtr& event,
helpers::Pool& p
+#define LOG4CXX_APPEND_PARAMETERS event, p
+ void doAppend(const spi::LoggingEventPtr& event);
+ /**
+ @deprecated The \c pool parameter is not used and will be
removed in a future version.
+ Implement this method for now, but plan to migrate to
doAppend() without a helpers::Pool parameter.
+ */
virtual void doAppend(const spi::LoggingEventPtr& event,
LOG4CXX_NS::helpers::Pool& pool) = 0;
-
+#else
+#define LOG4CXX_APPEND_FORMAL_PARAMETERS const spi::LoggingEventPtr& event
+#define LOG4CXX_APPEND_PARAMETERS event
+ virtual void doAppend(const spi::LoggingEventPtr& event) = 0;
+ /**
+ @deprecated The \c pool parameter is not used and will be
removed in a future version.
+ */
+ [[deprecated("Use doAppend() without a Pool parameter
instead")]]
+ void doAppend(const spi::LoggingEventPtr& event, helpers::Pool&
pool);
+#endif
/**
Get the name of this appender. The name uniquely identifies the
diff --git a/src/main/include/log4cxx/appenderskeleton.h
b/src/main/include/log4cxx/appenderskeleton.h
index a9557a67..679b9142 100644
--- a/src/main/include/log4cxx/appenderskeleton.h
+++ b/src/main/include/log4cxx/appenderskeleton.h
@@ -52,15 +52,14 @@ class LOG4CXX_EXPORT AppenderSkeleton
method to perform actual logging. See also
AppenderSkeleton::doAppend
method.
*/
- virtual void append(const spi::LoggingEventPtr& event,
helpers::Pool& p) = 0;
+ virtual void append( LOG4CXX_APPEND_FORMAL_PARAMETERS ) = 0;
/**
* Compare \c event level against the appender threshold and
check that \c event is accepted.
* If \c event is accepted, delegate log output to the subclass
implementation of
* the AppenderSkeleton#append method.
* */
- void doAppendImpl(const spi::LoggingEventPtr& event,
helpers::Pool& pool);
-
+ void doAppendImpl( LOG4CXX_APPEND_FORMAL_PARAMETERS );
/**
* Does no attached filter deny \c event or does an attached
filter accept \c event?
*/
@@ -167,7 +166,7 @@ class LOG4CXX_EXPORT AppenderSkeleton
*
* Reimplement this method in your appender if you use a
different concurrency control technique.
* */
- void doAppend(const spi::LoggingEventPtr& event, helpers::Pool&
pool) override;
+ void doAppend( LOG4CXX_APPEND_FORMAL_PARAMETERS ) override;
/**
Set the {@link spi::ErrorHandler ErrorHandler} for this
Appender.
diff --git a/src/main/include/log4cxx/asyncappender.h
b/src/main/include/log4cxx/asyncappender.h
index 8ce23ccb..9ba6b520 100644
--- a/src/main/include/log4cxx/asyncappender.h
+++ b/src/main/include/log4cxx/asyncappender.h
@@ -127,15 +127,14 @@ class LOG4CXX_EXPORT AsyncAppender :
/**
* Call AppenderSkeleton#doAppendImpl without acquiring a lock.
*/
- void doAppend(const spi::LoggingEventPtr& event,
- helpers::Pool& pool1) override;
+ void doAppend( LOG4CXX_APPEND_FORMAL_PARAMETERS ) override;
/**
* Add \c event to a ring buffer.
* The behaviour when the ring buffer is full
* is controlled by the [Blocking property](@ref
BlockingProperty) value.
*/
- void append(const spi::LoggingEventPtr& event, helpers::Pool&
p) override;
+ void append( LOG4CXX_APPEND_FORMAL_PARAMETERS ) override;
/**
Close this <code>AsyncAppender</code> by interrupting the
diff --git a/src/main/include/log4cxx/db/dbappender.h
b/src/main/include/log4cxx/db/dbappender.h
index 163da909..a56d32b8 100644
--- a/src/main/include/log4cxx/db/dbappender.h
+++ b/src/main/include/log4cxx/db/dbappender.h
@@ -146,7 +146,7 @@ class LOG4CXX_EXPORT DBAppender : public AppenderSkeleton
/**
* Adds the event to the buffer. When full the buffer is
flushed.
*/
- void append(const spi::LoggingEventPtr& event, helpers::Pool&)
override;
+ void append( LOG4CXX_APPEND_FORMAL_PARAMETERS ) override;
void close() override;
diff --git a/src/main/include/log4cxx/db/odbcappender.h
b/src/main/include/log4cxx/db/odbcappender.h
index 5d4de206..c09fb36b 100644
--- a/src/main/include/log4cxx/db/odbcappender.h
+++ b/src/main/include/log4cxx/db/odbcappender.h
@@ -184,7 +184,7 @@ class LOG4CXX_EXPORT ODBCAppender : public AppenderSkeleton
/**
* Adds the event to the buffer. When full the buffer is
flushed.
*/
- void append(const spi::LoggingEventPtr& event, helpers::Pool&)
override;
+ void append( LOG4CXX_APPEND_FORMAL_PARAMETERS ) override;
protected:
#if LOG4CXX_ABI_VERSION <= 15
diff --git a/src/main/include/log4cxx/helpers/appenderattachableimpl.h
b/src/main/include/log4cxx/helpers/appenderattachableimpl.h
index 289512e9..fceb77f1 100644
--- a/src/main/include/log4cxx/helpers/appenderattachableimpl.h
+++ b/src/main/include/log4cxx/helpers/appenderattachableimpl.h
@@ -63,11 +63,19 @@ class LOG4CXX_EXPORT AppenderAttachableImpl :
*/
void addAppender(const AppenderPtr newAppender) override;
+#if LOG4CXX_ABI_VERSION <= 15
/**
Call the <code>doAppend</code> method on all attached
appenders.
+ @deprecated This function is deprecated and will be removed in
a future version.
*/
+ [[ deprecated( "Pool is no longer required" ) ]]
int appendLoopOnAppenders(const spi::LoggingEventPtr& event,
LOG4CXX_NS::helpers::Pool& p);
+#endif
+ /**
+ Send \c event to all attached appenders.
+ */
+ int appendLoopOnAppenders(const spi::LoggingEventPtr& event);
/**
* Get all previously added appenders as an Enumeration.
diff --git a/src/main/include/log4cxx/logger.h
b/src/main/include/log4cxx/logger.h
index 01bad91f..7c801e5c 100644
--- a/src/main/include/log4cxx/logger.h
+++ b/src/main/include/log4cxx/logger.h
@@ -70,6 +70,7 @@ class LOG4CXX_EXPORT Logger
*/
Logger(const LogString& name);
#if LOG4CXX_ABI_VERSION <= 15
+ /// @deprecated This function is deprecated and will be removed
in a future version.
[[ deprecated( "Pool is no longer required" ) ]]
Logger(helpers::Pool& pool, const LogString& name);
#endif
@@ -86,6 +87,7 @@ class LOG4CXX_EXPORT Logger
void addAppender(const AppenderPtr newAppender) override;
+#if LOG4CXX_ABI_VERSION <= 15
/**
Call the appenders in the hierrachy starting at
<code>this</code>. If no appenders could be found, emit a
@@ -97,8 +99,17 @@ class LOG4CXX_EXPORT Logger
@param event the event to log.
@param p memory pool for any allocations needed to process
request.
+ @deprecated This function is deprecated and will be removed in
a future version.
*/
+ [[ deprecated( "Pool is no longer required" ) ]]
void callAppenders(const spi::LoggingEventPtr& event,
helpers::Pool& p) const;
+#endif
+ /**
+ Send \c event to all appenders attached to this or attached to
a parent of this.
+ If no appenders are found, emit a warning.
+ This method does not check the \c event level.
+ */
+ void callAppenders(const spi::LoggingEventPtr& event) const;
/**
Close all attached appenders implementing the AppenderAttachable
diff --git a/src/main/include/log4cxx/net/smtpappender.h
b/src/main/include/log4cxx/net/smtpappender.h
index f108bec9..d7107697 100644
--- a/src/main/include/log4cxx/net/smtpappender.h
+++ b/src/main/include/log4cxx/net/smtpappender.h
@@ -147,7 +147,7 @@ class LOG4CXX_EXPORT SMTPAppender : public AppenderSkeleton
Perform SMTPAppender specific appending actions, mainly adding
the event to a cyclic buffer and checking if the event triggers
an e-mail to be sent. */
- void append(const spi::LoggingEventPtr& event, helpers::Pool&
p) override;
+ void append( LOG4CXX_APPEND_FORMAL_PARAMETERS ) override;
void close() override;
diff --git a/src/main/include/log4cxx/net/syslogappender.h
b/src/main/include/log4cxx/net/syslogappender.h
index 9b4072c2..a080d662 100644
--- a/src/main/include/log4cxx/net/syslogappender.h
+++ b/src/main/include/log4cxx/net/syslogappender.h
@@ -73,7 +73,7 @@ class LOG4CXX_EXPORT SyslogAppender : public AppenderSkeleton
*/
static int getFacility(const LogString& facilityName);
- void append(const spi::LoggingEventPtr& event, helpers::Pool&
p) override;
+ void append( LOG4CXX_APPEND_FORMAL_PARAMETERS ) override;
#if LOG4CXX_ABI_VERSION <= 15
/**
diff --git a/src/main/include/log4cxx/net/telnetappender.h
b/src/main/include/log4cxx/net/telnetappender.h
index e52bb6c9..4f1fc705 100644
--- a/src/main/include/log4cxx/net/telnetappender.h
+++ b/src/main/include/log4cxx/net/telnetappender.h
@@ -168,7 +168,7 @@ class LOG4CXX_EXPORT TelnetAppender : public
AppenderSkeleton
protected:
/** Send \c event to each connected client.
*/
- void append(const spi::LoggingEventPtr& event, helpers::Pool&
p) override;
+ void append( LOG4CXX_APPEND_FORMAL_PARAMETERS ) override;
private:
// prevent copy and assignment statements
diff --git a/src/main/include/log4cxx/net/xmlsocketappender.h
b/src/main/include/log4cxx/net/xmlsocketappender.h
index 5985611c..f22f036f 100644
--- a/src/main/include/log4cxx/net/xmlsocketappender.h
+++ b/src/main/include/log4cxx/net/xmlsocketappender.h
@@ -145,7 +145,7 @@ class LOG4CXX_EXPORT XMLSocketAppender : public
SocketAppenderSkeleton
int getDefaultPort() const override;
- void append(const spi::LoggingEventPtr& event, helpers::Pool&
pool) override;
+ void append( LOG4CXX_APPEND_FORMAL_PARAMETERS ) override;
private:
// prevent copy and assignment statements
diff --git a/src/main/include/log4cxx/nt/nteventlogappender.h
b/src/main/include/log4cxx/nt/nteventlogappender.h
index 3f755fa4..2ebbf969 100644
--- a/src/main/include/log4cxx/nt/nteventlogappender.h
+++ b/src/main/include/log4cxx/nt/nteventlogappender.h
@@ -99,7 +99,7 @@ class LOG4CXX_EXPORT NTEventLogAppender : public
AppenderSkeleton
typedef void SID;
typedef void* HANDLE;
- void append(const spi::LoggingEventPtr& event, helpers::Pool&
p) override;
+ void append( LOG4CXX_APPEND_FORMAL_PARAMETERS ) override;
static unsigned short getEventType(const spi::LoggingEventPtr&
event);
static unsigned short getEventCategory(const
spi::LoggingEventPtr& event);
/*
diff --git a/src/main/include/log4cxx/nt/outputdebugstringappender.h
b/src/main/include/log4cxx/nt/outputdebugstringappender.h
index 4b68e6c8..24ca2410 100644
--- a/src/main/include/log4cxx/nt/outputdebugstringappender.h
+++ b/src/main/include/log4cxx/nt/outputdebugstringappender.h
@@ -42,7 +42,7 @@ class LOG4CXX_EXPORT OutputDebugStringAppender : public
AppenderSkeleton
void close() override {}
- void append(const spi::LoggingEventPtr& event, helpers::Pool&
p) override;
+ void append( LOG4CXX_APPEND_FORMAL_PARAMETERS ) override;
};
}
}
diff --git a/src/main/include/log4cxx/rolling/multiprocessrollingfileappender.h
b/src/main/include/log4cxx/rolling/multiprocessrollingfileappender.h
index 7ce9d8c5..f2d7291f 100644
--- a/src/main/include/log4cxx/rolling/multiprocessrollingfileappender.h
+++ b/src/main/include/log4cxx/rolling/multiprocessrollingfileappender.h
@@ -72,14 +72,17 @@ class LOG4CXX_EXPORT MultiprocessRollingFileAppender :
public RollingFileAppende
<code>File</code> is truncated with no backup files created.
*/
- bool rollover(helpers::Pool& p);
+ bool rollover();
+#if LOG4CXX_ABI_VERSION <= 15
+ bool rollover(LOG4CXX_NS::helpers::Pool& p);
+#endif
protected:
/**
Actual writing occurs here.
*/
- void subAppend(const spi::LoggingEventPtr& event,
helpers::Pool& p) override;
+ void subAppend( LOG4CXX_APPEND_FORMAL_PARAMETERS ) override;
protected:
/**
@@ -99,7 +102,10 @@ class LOG4CXX_EXPORT MultiprocessRollingFileAppender :
public RollingFileAppende
* @return true if this process perfomed the rollover.
*/
+ bool synchronizedRollover(const TriggeringPolicyPtr& trigger =
TriggeringPolicyPtr() );
+#if LOG4CXX_ABI_VERSION <= 15
bool synchronizedRollover(helpers::Pool& p, const
TriggeringPolicyPtr& trigger = TriggeringPolicyPtr() );
+#endif
/**
* Set the length of current active log file to \c length bytes.
diff --git a/src/main/include/log4cxx/rolling/rollingfileappender.h
b/src/main/include/log4cxx/rolling/rollingfileappender.h
index a6353dd1..7d0fa0dd 100644
--- a/src/main/include/log4cxx/rolling/rollingfileappender.h
+++ b/src/main/include/log4cxx/rolling/rollingfileappender.h
@@ -169,16 +169,22 @@ class LOG4CXX_EXPORT RollingFileAppender : public
FileAppender
<code>File</code> is truncated with no backup files created.
*/
+ bool rollover();
+#if LOG4CXX_ABI_VERSION <= 15
bool rollover(LOG4CXX_NS::helpers::Pool& p);
+#endif
protected:
/**
Actual writing occurs here.
*/
- void subAppend(const spi::LoggingEventPtr& event,
helpers::Pool& p) override;
+ void subAppend( LOG4CXX_APPEND_FORMAL_PARAMETERS ) override;
+ bool rolloverInternal();
+#if LOG4CXX_ABI_VERSION <= 15
bool rolloverInternal(LOG4CXX_NS::helpers::Pool& p);
+#endif
public:
/**
diff --git a/src/main/include/log4cxx/writerappender.h
b/src/main/include/log4cxx/writerappender.h
index 3e38f83a..ddb0f888 100644
--- a/src/main/include/log4cxx/writerappender.h
+++ b/src/main/include/log4cxx/writerappender.h
@@ -93,7 +93,7 @@ class LOG4CXX_EXPORT WriterAppender : public AppenderSkeleton
layout.
*/
- void append(const spi::LoggingEventPtr& event, helpers::Pool&
p) override;
+ void append( LOG4CXX_APPEND_FORMAL_PARAMETERS ) override;
protected:
@@ -181,7 +181,7 @@ class LOG4CXX_EXPORT WriterAppender : public
AppenderSkeleton
/**
Actual writing occurs here.
*/
- virtual void subAppend(const spi::LoggingEventPtr& event,
helpers::Pool& p);
+ virtual void subAppend( LOG4CXX_APPEND_FORMAL_PARAMETERS );
#if LOG4CXX_ABI_VERSION <= 15
diff --git a/src/site/doxy/Doxyfile.in b/src/site/doxy/Doxyfile.in
index 56c21fcc..6afae8be 100644
--- a/src/site/doxy/Doxyfile.in
+++ b/src/site/doxy/Doxyfile.in
@@ -2350,10 +2350,13 @@ PREDEFINED = LOG4CXX_NS=log4cxx \
LOG4CXX_UNICHAR_API \
LOG4CXX_CFSTRING_API \
LOG4CXX_ABI_VERSION=@log4cxx_ABI_VER@ \
-
LOG4CXX_ACTIVATE_OPTIONS_FORMAL_PARAMETERS=helpers::Pool& p \
+
LOG4CXX_ACTIVATE_OPTIONS_FORMAL_PARAMETERS="helpers::Pool& p" \
LOG4CXX_ACTIVATE_OPTIONS_PARAMETER=p \
+ LOG4CXX_APPEND_FORMAL_PARAMETERS="const
spi::LoggingEventPtr& event, helpers::Pool& p" \
+ LOG4CXX_APPEND_PARAMETERS="event, p" \
LOG4CXX_HAS_DOMCONFIGURATOR=1 \
- LOG4CXX_ASYNC_BUFFER_SUPPORTS_FMT=1
+ LOG4CXX_ASYNC_BUFFER_SUPPORTS_FMT=1 \
+ __LOG4CXX_FUNC__=compiler_dependent
# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this
# tag can be used to specify a list of macro names that should be expanded. The
diff --git a/src/test/cpp/asyncappendertestcase.cpp
b/src/test/cpp/asyncappendertestcase.cpp
index 4fce26e8..265eced6 100644
--- a/src/test/cpp/asyncappendertestcase.cpp
+++ b/src/test/cpp/asyncappendertestcase.cpp
@@ -77,7 +77,7 @@ class NullPointerAppender : public AppenderSkeleton
/**
* @{inheritDoc}
*/
- void append(const spi::LoggingEventPtr&,
LOG4CXX_NS::helpers::Pool&) override
+ void append( LOG4CXX_APPEND_FORMAL_PARAMETERS ) override
{
throw RuntimeException(LOG4CXX_STR("Intentional
Exception"));
}
@@ -110,10 +110,10 @@ class BlockableVectorAppender : public VectorAppender
/**
* {@inheritDoc}
*/
- void append(const spi::LoggingEventPtr& event,
LOG4CXX_NS::helpers::Pool& p) override
+ void append( LOG4CXX_APPEND_FORMAL_PARAMETERS ) override
{
std::lock_guard<std::mutex> lock( blocker );
- VectorAppender::append(event, p);
+ VectorAppender::append( LOG4CXX_APPEND_PARAMETERS );
}
std::mutex& getBlocker()
@@ -130,10 +130,10 @@ LOG4CXX_PTR_DEF(BlockableVectorAppender);
class LoggingVectorAppender : public VectorAppender
{
LoggerInstancePtr logger{ "LoggingVectorAppender" };
- void append(const spi::LoggingEventPtr& event,
LOG4CXX_NS::helpers::Pool& p) override
+ void append( LOG4CXX_APPEND_FORMAL_PARAMETERS ) override
{
auto& lsMsg = event->getRenderedMessage();
- VectorAppender::append(event, p);
+ VectorAppender::append( LOG4CXX_APPEND_PARAMETERS );
if (LogString::npos != lsMsg.find(LOG4CXX_STR("World")))
{
LOG4CXX_LOGLS(logger, Level::getError(),
LOG4CXX_STR("Some appender error"));
diff --git a/src/test/cpp/benchmark/benchmark.cpp
b/src/test/cpp/benchmark/benchmark.cpp
index 40658774..15b6263c 100644
--- a/src/test/cpp/benchmark/benchmark.cpp
+++ b/src/test/cpp/benchmark/benchmark.cpp
@@ -43,7 +43,7 @@ public:
return true;
}
- void append(const spi::LoggingEventPtr& event, helpers::Pool& p)
override
+ void append( LOG4CXX_APPEND_FORMAL_PARAMETERS ) override
{
LogString buf;
m_priv->layout->format(buf, event, p);
diff --git a/src/test/cpp/levelchangetestcase.cpp
b/src/test/cpp/levelchangetestcase.cpp
index 8befde16..48504ce2 100644
--- a/src/test/cpp/levelchangetestcase.cpp
+++ b/src/test/cpp/levelchangetestcase.cpp
@@ -37,7 +37,7 @@ class CountingAppender : public AppenderSkeleton
void close() override
{}
- void append(const spi::LoggingEventPtr& /*event*/,
helpers::Pool& /*p*/) override
+ void append( LOG4CXX_APPEND_FORMAL_PARAMETERS ) override
{
count++;
}
diff --git a/src/test/cpp/loggertestcase.cpp b/src/test/cpp/loggertestcase.cpp
index 03671609..cee5aef7 100644
--- a/src/test/cpp/loggertestcase.cpp
+++ b/src/test/cpp/loggertestcase.cpp
@@ -50,7 +50,7 @@ class CountingAppender : public AppenderSkeleton
void close() override
{}
- void append(const spi::LoggingEventPtr& /*event*/, Pool& /*p*/)
override
+ void append( LOG4CXX_APPEND_FORMAL_PARAMETERS ) override
{
counter++;
}
diff --git a/src/test/cpp/nt/nteventlogappendertestcase.cpp
b/src/test/cpp/nt/nteventlogappendertestcase.cpp
index 01bd6101..d9e5fcb1 100644
--- a/src/test/cpp/nt/nteventlogappendertestcase.cpp
+++ b/src/test/cpp/nt/nteventlogappendertestcase.cpp
@@ -75,10 +75,10 @@ class NTEventLogAppenderTestCase : public
AppenderSkeletonTestCase
}
- Pool p;
Date now;
DWORD expectedTime = now.getTime() /
Date::getMicrosecondsPerSecond();
{
+ Pool p;
NTEventLogAppenderPtr appender(new
NTEventLogAppender());
appender->setSource(LOG4CXX_STR("log4cxx_test"));
LayoutPtr layout(new
PatternLayout(LOG4CXX_STR("%c - %m%n")));
@@ -87,7 +87,7 @@ class NTEventLogAppenderTestCase : public
AppenderSkeletonTestCase
LoggingEventPtr event(new LoggingEvent(
LOG4CXX_STR("org.foobar"),
Level::getInfo(), LOG4CXX_STR("Hello, World"), LOG4CXX_LOCATION));
- appender->doAppend(event, p);
+ appender->doAppend( LOG4CXX_APPEND_PARAMETERS );
}
hEventLog = ::OpenEventLogW(NULL, L"log4cxx_test");
LOGUNIT_ASSERT(hEventLog != NULL);
diff --git a/src/test/cpp/optionhandlertest.cpp
b/src/test/cpp/optionhandlertest.cpp
index c4483ff4..9e4d2206 100644
--- a/src/test/cpp/optionhandlertest.cpp
+++ b/src/test/cpp/optionhandlertest.cpp
@@ -34,7 +34,7 @@ public:
void close() override
{}
- void append(const spi::LoggingEventPtr& /*event*/, helpers::Pool&
/*p*/) override
+ void append( LOG4CXX_APPEND_FORMAL_PARAMETERS ) override
{
helpers::LogLog::debug(LOG4CXX_STR("ABI_15_Appender::append"));
}
@@ -66,7 +66,7 @@ public:
void close() override
{}
- void append(const spi::LoggingEventPtr& /*event*/, helpers::Pool&
/*p*/) override
+ void append( LOG4CXX_APPEND_FORMAL_PARAMETERS ) override
{
helpers::LogLog::debug(LOG4CXX_STR("BaseAppender::append"));
}
diff --git a/src/test/cpp/rolling/manualrollingtest.cpp
b/src/test/cpp/rolling/manualrollingtest.cpp
index eb7e54a2..31769d3d 100644
--- a/src/test/cpp/rolling/manualrollingtest.cpp
+++ b/src/test/cpp/rolling/manualrollingtest.cpp
@@ -91,7 +91,7 @@ public:
if (digit == 0)
{
- rfa->rollover(pool);
+ rfa->rollover();
}
msg[7] = '0' + i / 10;
diff --git a/src/test/cpp/vectorappender.cpp b/src/test/cpp/vectorappender.cpp
index aa7999a3..6e8f95f5 100644
--- a/src/test/cpp/vectorappender.cpp
+++ b/src/test/cpp/vectorappender.cpp
@@ -24,7 +24,7 @@ using namespace log4cxx::helpers;
IMPLEMENT_LOG4CXX_OBJECT(VectorAppender)
-void VectorAppender::append(const spi::LoggingEventPtr& event, Pool& /*p*/)
+void VectorAppender::append( LOG4CXX_APPEND_FORMAL_PARAMETERS )
{
if (0 < this->appendMillisecondDelay)
std::this_thread::sleep_for( std::chrono::milliseconds(
this->appendMillisecondDelay ) );
diff --git a/src/test/cpp/vectorappender.h b/src/test/cpp/vectorappender.h
index 25c47814..272907c8 100644
--- a/src/test/cpp/vectorappender.h
+++ b/src/test/cpp/vectorappender.h
@@ -42,7 +42,7 @@ class VectorAppender : public AppenderSkeleton
This method is called by the AppenderSkeleton#doAppend
method.
*/
- void append(const spi::LoggingEventPtr& event,
log4cxx::helpers::Pool& p) override;
+ void append( LOG4CXX_APPEND_FORMAL_PARAMETERS ) override;
const std::vector<spi::LoggingEventPtr>& getVector() const
{