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 ce13ecee Simplify converter interfaces in a future ABI version (#644)
ce13ecee is described below

commit ce13eceedb49013a471058a29dc78c55ebbe0df2
Author: Stephen Webb <[email protected]>
AuthorDate: Tue May 5 13:56:55 2026 +1000

    Simplify converter interfaces in a future ABI version (#644)
---
 src/main/cpp/cacheddateformat.cpp                  |  47 +++---
 src/main/cpp/classnamepatternconverter.cpp         |   5 +-
 src/main/cpp/colorendpatternconverter.cpp          |   5 +-
 src/main/cpp/colorstartpatternconverter.cpp        |   5 +-
 src/main/cpp/dateformat.cpp                        |  18 +++
 src/main/cpp/datepatternconverter.cpp              |  33 ++---
 src/main/cpp/dbappender.cpp                        |   5 +-
 src/main/cpp/filelocationpatternconverter.cpp      |   5 +-
 src/main/cpp/fulllocationpatternconverter.cpp      |   5 +-
 src/main/cpp/htmllayout.cpp                        |   4 +-
 src/main/cpp/integerpatternconverter.cpp           |   5 +-
 src/main/cpp/jsonlayout.cpp                        |   2 +-
 src/main/cpp/levelpatternconverter.cpp             |   5 +-
 src/main/cpp/linelocationpatternconverter.cpp      |   5 +-
 src/main/cpp/lineseparatorpatternconverter.cpp     |  10 +-
 src/main/cpp/literalpatternconverter.cpp           |  10 +-
 src/main/cpp/loggerpatternconverter.cpp            |   5 +-
 src/main/cpp/loggingeventpatternconverter.cpp      |  23 ++-
 src/main/cpp/mdcpatternconverter.cpp               |   6 +-
 src/main/cpp/messagepatternconverter.cpp           |  12 +-
 src/main/cpp/methodlocationpatternconverter.cpp    |   5 +-
 src/main/cpp/ndcpatternconverter.cpp               |   5 +-
 src/main/cpp/patternconverter.cpp                  |  14 ++
 src/main/cpp/patternlayout.cpp                     |   2 +-
 src/main/cpp/propertiespatternconverter.cpp        |   5 +-
 src/main/cpp/relativetimedateformat.cpp            |   9 +-
 src/main/cpp/relativetimepatternconverter.cpp      |   5 +-
 src/main/cpp/rollingpolicybase.cpp                 |   2 +-
 src/main/cpp/shortfilelocationpatternconverter.cpp |   5 +-
 src/main/cpp/simpledateformat.cpp                  |   7 +-
 src/main/cpp/strftimedateformat.cpp                |   6 +-
 src/main/cpp/threadpatternconverter.cpp            |   5 +-
 src/main/cpp/threadusernamepatternconverter.cpp    |   5 +-
 .../cpp/throwableinformationpatternconverter.cpp   |   5 +-
 .../include/log4cxx/helpers/cacheddateformat.h     |  24 +--
 src/main/include/log4cxx/helpers/dateformat.h      |  41 ++++-
 .../log4cxx/helpers/relativetimedateformat.h       |   6 +-
 .../include/log4cxx/helpers/simpledateformat.h     |   7 +-
 .../include/log4cxx/helpers/strftimedateformat.h   |   7 +-
 .../log4cxx/pattern/classnamepatternconverter.h    |   4 +-
 .../log4cxx/pattern/colorendpatternconverter.h     |   4 +-
 .../log4cxx/pattern/colorstartpatternconverter.h   |   4 +-
 .../include/log4cxx/pattern/datepatternconverter.h |  12 +-
 .../log4cxx/pattern/filelocationpatternconverter.h |   4 +-
 .../log4cxx/pattern/fulllocationpatternconverter.h |   4 +-
 .../log4cxx/pattern/integerpatternconverter.h      |   5 +-
 .../log4cxx/pattern/levelpatternconverter.h        |   4 +-
 .../log4cxx/pattern/linelocationpatternconverter.h |   4 +-
 .../pattern/lineseparatorpatternconverter.h        |   8 +-
 .../log4cxx/pattern/literalpatternconverter.h      |   8 +-
 .../log4cxx/pattern/loggerpatternconverter.h       |   4 +-
 .../log4cxx/pattern/loggingeventpatternconverter.h |  26 +++-
 .../include/log4cxx/pattern/mdcpatternconverter.h  |   6 +-
 .../log4cxx/pattern/messagepatternconverter.h      |   4 +-
 .../pattern/methodlocationpatternconverter.h       |   4 +-
 .../include/log4cxx/pattern/ndcpatternconverter.h  |   4 +-
 .../include/log4cxx/pattern/patternconverter.h     |  19 ++-
 .../log4cxx/pattern/propertiespatternconverter.h   |   4 +-
 .../log4cxx/pattern/relativetimepatternconverter.h |   4 +-
 .../pattern/shortfilelocationpatternconverter.h    |   4 +-
 .../log4cxx/pattern/threadpatternconverter.h       |   4 +-
 .../pattern/threadusernamepatternconverter.h       |   6 +-
 .../pattern/throwableinformationpatternconverter.h |   4 +-
 src/site/doxy/Doxyfile.in                          |   5 +
 .../cpp/helpers/absolutetimedateformattestcase.cpp |   6 +-
 src/test/cpp/helpers/cacheddateformattestcase.cpp  | 150 ++++++++-----------
 .../cpp/helpers/datetimedateformattestcase.cpp     |   9 +-
 src/test/cpp/helpers/iso8601dateformattestcase.cpp |   6 +-
 .../cpp/helpers/relativetimedateformattestcase.cpp |   7 +-
 src/test/cpp/jsonlayouttest.cpp                    |   4 +-
 .../cpp/pattern/colorstartpatternconvertertest.cpp | 165 ++++++++++-----------
 src/test/cpp/pattern/num343patternconverter.cpp    |   7 +-
 src/test/cpp/pattern/num343patternconverter.h      |   7 +-
 src/test/cpp/pattern/patternparsertestcase.cpp     |  15 +-
 src/test/cpp/rolling/filenamepatterntestcase.cpp   |   3 +-
 src/test/cpp/rolling/multiprocessrollingtest.cpp   |   3 +-
 src/test/cpp/rolling/timebasedrollingtest.cpp      |   2 +-
 77 files changed, 424 insertions(+), 499 deletions(-)

diff --git a/src/main/cpp/cacheddateformat.cpp 
b/src/main/cpp/cacheddateformat.cpp
index bcd1cc5c..7df6ccc9 100644
--- a/src/main/cpp/cacheddateformat.cpp
+++ b/src/main/cpp/cacheddateformat.cpp
@@ -151,8 +151,7 @@ CachedDateFormat::~CachedDateFormat() {}
  */
 int CachedDateFormat::findMillisecondStart(
        log4cxx_time_t time, const LogString& formatted,
-       const DateFormatPtr& formatter,
-       Pool& pool)
+       const DateFormatPtr& formatter)
 {
 
        log4cxx_time_t slotBegin = (time / 1000000) * 1000000;
@@ -175,7 +174,7 @@ int CachedDateFormat::findMillisecondStart(
        }
 
        LogString plusMagic;
-       formatter->format(plusMagic, slotBegin + magic, pool);
+       formatter->format(plusMagic, slotBegin + magic);
 
        /**
         *   If the string lengths differ then
@@ -199,7 +198,7 @@ int CachedDateFormat::findMillisecondStart(
                                millisecondFormat(millis, formattedMillis, 0);
 
                                LogString plusZero;
-                               formatter->format(plusZero, slotBegin, pool);
+                               formatter->format(plusZero, slotBegin);
 
                                // Test if the next 1..3 characters match the 
magic string, main problem is that magic
                                // available millis in formatted can overlap. 
Therefore the current i is not always the
@@ -232,7 +231,15 @@ int CachedDateFormat::findMillisecondStart(
 
        return NO_MILLISECONDS;
 }
-
+#if LOG4CXX_ABI_VERSION <= 15
+int CachedDateFormat::findMillisecondStart(
+       log4cxx_time_t time, const LogString& formatted,
+       const DateFormatPtr& formatter,
+       Pool& pool)
+{
+       return findMillisecondStart(time, formatted, formatter);
+}
+#endif
 
 /**
  * Formats a millisecond count into a date/time string.
@@ -240,16 +247,16 @@ int CachedDateFormat::findMillisecondStart(
  *  @param now Number of milliseconds after midnight 1 Jan 1970 GMT.
  *  @param sbuf the string buffer to write to
  */
-void CachedDateFormat::format(LogString& buf, log4cxx_time_t now, Pool& p) 
const
+void CachedDateFormat::format( LOG4CXX_FORMAT_TIME_FORMAL_PARAMETERS ) const
 {
 
        //
        // If the current requested time is identical to the previously
        //     requested time, then append the cache contents.
        //
-       if (now == m_priv->previousTime)
+       if (tm == m_priv->previousTime)
        {
-               buf.append(m_priv->cache);
+               toAppendTo.append(m_priv->cache);
                return;
        }
 
@@ -262,23 +269,23 @@ void CachedDateFormat::format(LogString& buf, 
log4cxx_time_t now, Pool& p) const
                //    Check if the cache is still valid.
                //    If the requested time is within the same integral second
                //       as the last request and a shorter expiration was not 
requested.
-               if (now < m_priv->slotBegin + m_priv->expiration
-                       && now >= m_priv->slotBegin
-                       && now < m_priv->slotBegin + 1000000L)
+               if (tm < m_priv->slotBegin + m_priv->expiration
+                       && tm >= m_priv->slotBegin
+                       && tm < m_priv->slotBegin + 1000000L)
                {
                        //
                        //    if there was a millisecond field then update it
                        //
                        if (m_priv->millisecondStart >= 0)
                        {
-                               millisecondFormat((int) ((now - 
m_priv->slotBegin) / 1000), m_priv->cache, m_priv->millisecondStart);
+                               millisecondFormat((int) ((tm - 
m_priv->slotBegin) / 1000), m_priv->cache, m_priv->millisecondStart);
                        }
 
                        //
                        //   update the previously requested time
                        //      (the slot begin should be unchanged)
-                       m_priv->previousTime = now;
-                       buf.append(m_priv->cache);
+                       m_priv->previousTime = tm;
+                       toAppendTo.append(m_priv->cache);
 
                        return;
                }
@@ -288,9 +295,9 @@ void CachedDateFormat::format(LogString& buf, 
log4cxx_time_t now, Pool& p) const
        //  could not use previous value.
        //    Call underlying formatter to format date.
        m_priv->cache.erase(m_priv->cache.begin(), m_priv->cache.end());
-       m_priv->formatter->format(m_priv->cache, now, p);
-       buf.append(m_priv->cache);
-       m_priv->previousTime = now;
+       m_priv->formatter->format(m_priv->cache, tm);
+       toAppendTo.append(m_priv->cache);
+       m_priv->previousTime = tm;
        m_priv->slotBegin = (m_priv->previousTime / 1000000) * 1000000;
 
        if (m_priv->slotBegin > m_priv->previousTime)
@@ -304,7 +311,7 @@ void CachedDateFormat::format(LogString& buf, 
log4cxx_time_t now, Pool& p) const
        //
        if (m_priv->millisecondStart >= 0)
        {
-               m_priv->millisecondStart = findMillisecondStart(now, 
m_priv->cache, m_priv->formatter, p);
+               m_priv->millisecondStart = findMillisecondStart(tm, 
m_priv->cache, m_priv->formatter);
        }
 }
 
@@ -340,9 +347,9 @@ void CachedDateFormat::setTimeZone(const TimeZonePtr& 
timeZone)
 
 
 
-void CachedDateFormat::numberFormat(LogString& s, int n, Pool& p) const
+void CachedDateFormat::numberFormat( LOG4CXX_FORMAT_NUMBER_FORMAL_PARAMETERS ) 
const
 {
-       m_priv->formatter->numberFormat(s, n, p);
+       m_priv->formatter->numberFormat(toAppendTo, n);
 }
 
 
diff --git a/src/main/cpp/classnamepatternconverter.cpp 
b/src/main/cpp/classnamepatternconverter.cpp
index 4af44420..1afe6b35 100644
--- a/src/main/cpp/classnamepatternconverter.cpp
+++ b/src/main/cpp/classnamepatternconverter.cpp
@@ -40,10 +40,7 @@ PatternConverterPtr ClassNamePatternConverter::newInstance(
        return std::make_shared<ClassNamePatternConverter>(options);
 }
 
-void ClassNamePatternConverter::format(
-       const LoggingEventPtr& event,
-       LogString& toAppendTo,
-       Pool& /* p */) const
+void ClassNamePatternConverter::format( LOG4CXX_FORMAT_EVENT_FORMAL_PARAMETERS 
) const
 {
        int initialLength = (int)toAppendTo.length();
        append(toAppendTo, event->getLocationInformation().getClassName());
diff --git a/src/main/cpp/colorendpatternconverter.cpp 
b/src/main/cpp/colorendpatternconverter.cpp
index 6f9ac19e..24695cb5 100644
--- a/src/main/cpp/colorendpatternconverter.cpp
+++ b/src/main/cpp/colorendpatternconverter.cpp
@@ -41,10 +41,7 @@ PatternConverterPtr ColorEndPatternConverter::newInstance(
        return instance;
 }
 
-void ColorEndPatternConverter::format(
-       const LoggingEventPtr& event,
-       LogString& toAppendTo,
-       Pool& p) const
+void ColorEndPatternConverter::format( LOG4CXX_FORMAT_EVENT_FORMAL_PARAMETERS 
) const
 {
 
        // Reset all colors on the output(code 0)
diff --git a/src/main/cpp/colorstartpatternconverter.cpp 
b/src/main/cpp/colorstartpatternconverter.cpp
index d8409302..57879769 100644
--- a/src/main/cpp/colorstartpatternconverter.cpp
+++ b/src/main/cpp/colorstartpatternconverter.cpp
@@ -158,10 +158,7 @@ PatternConverterPtr 
ColorStartPatternConverter::newInstance(
        return instance;
 }
 
-void ColorStartPatternConverter::format(
-       const LoggingEventPtr& event,
-       LogString& toAppendTo,
-       Pool& p) const
+void ColorStartPatternConverter::format( 
LOG4CXX_FORMAT_EVENT_FORMAL_PARAMETERS ) const
 {
 
        LOG4CXX_NS::LevelPtr lvl = event->getLevel();
diff --git a/src/main/cpp/dateformat.cpp b/src/main/cpp/dateformat.cpp
index e6d7e602..a10afd16 100644
--- a/src/main/cpp/dateformat.cpp
+++ b/src/main/cpp/dateformat.cpp
@@ -18,6 +18,7 @@
 #include <log4cxx/logstring.h>
 #include <log4cxx/helpers/dateformat.h>
 #include <log4cxx/helpers/stringhelper.h>
+#include <log4cxx/helpers/pool.h>
 
 
 using namespace LOG4CXX_NS;
@@ -36,3 +37,20 @@ void DateFormat::numberFormat(LogString& s, int n, Pool& p) 
const
 
 DateFormat::DateFormat() {}
 
+void DateFormat::numberFormat(LogString& toAppendTo, int n) const
+{
+       StringHelper::toString(n, toAppendTo);
+}
+
+#if LOG4CXX_ABI_VERSION <= 15
+void DateFormat::format(LogString& toAppendTo, log4cxx_time_t tm) const
+{
+       helpers::Pool p;
+       format(toAppendTo, tm, p);
+}
+#else
+void DateFormat::format(LogString& toAppendTo, log4cxx_time_t tm, Pool& p) 
const
+{
+       format(toAppendTo, tm);
+}
+#endif
diff --git a/src/main/cpp/datepatternconverter.cpp 
b/src/main/cpp/datepatternconverter.cpp
index 9f20d9ce..68df9d47 100644
--- a/src/main/cpp/datepatternconverter.cpp
+++ b/src/main/cpp/datepatternconverter.cpp
@@ -144,39 +144,27 @@ PatternConverterPtr DatePatternConverter::newInstance(
        return std::make_shared<DatePatternConverter>(options);
 }
 
-void DatePatternConverter::format(
-       const LoggingEventPtr& event,
-       LogString& toAppendTo,
-       Pool& p) const
+void DatePatternConverter::format( LOG4CXX_FORMAT_EVENT_FORMAL_PARAMETERS ) 
const
 {
-       priv->df->format(toAppendTo, event->getTimeStamp(), p);
+       priv->df->format(toAppendTo, event->getTimeStamp());
 }
 
 /**
  * {@inheritDoc}
  */
-void DatePatternConverter::format(
-       const ObjectPtr& obj,
-       LogString& toAppendTo,
-       Pool& p) const
+void DatePatternConverter::format( LOG4CXX_FORMAT_OBJECT_FORMAL_PARAMETERS ) 
const
 {
-       DatePtr date = LOG4CXX_NS::cast<Date>(obj);
-
-       if (date != NULL)
+       if (auto date = LOG4CXX_NS::cast<Date>(obj))
        {
-               format(date, toAppendTo, p);
+               format(date, toAppendTo);
        }
-       else
+       else if (auto event = LOG4CXX_NS::cast<LoggingEvent>(obj))
        {
-               LoggingEventPtr event = LOG4CXX_NS::cast<LoggingEvent>(obj);
-
-               if (event != NULL)
-               {
-                       format(event, toAppendTo, p);
-               }
+               format( LOG4CXX_FORMAT_EVENT_PARAMETERS );
        }
 }
 
+#if LOG4CXX_ABI_VERSION <= 15
 /**
  * Append formatted date to string buffer.
  * @param date date
@@ -189,3 +177,8 @@ void DatePatternConverter::format(
 {
        priv->df->format(toAppendTo, date->getTime(), p);
 }
+#endif
+void DatePatternConverter::format(const DatePtr& date, LogString& toAppendTo) 
const
+{
+       priv->df->format(toAppendTo, date->getTime());
+}
diff --git a/src/main/cpp/dbappender.cpp b/src/main/cpp/dbappender.cpp
index 7bf72c52..0eb4823e 100644
--- a/src/main/cpp/dbappender.cpp
+++ b/src/main/cpp/dbappender.cpp
@@ -236,10 +236,9 @@ void DBAppender::append( LOG4CXX_APPEND_FORMAL_PARAMETERS 
){
         return;
     }
 
-    helpers::Pool tempPool;
     for(auto& converter : _priv->converters){
-        LogString str_data;
-        converter->format(event, str_data, tempPool);
+               LogString str_data;
+               converter->format(event, str_data);
                LOG4CXX_ENCODE_CHAR(new_str_data, str_data);
                ls_args.push_back(new_str_data);
     }
diff --git a/src/main/cpp/filelocationpatternconverter.cpp 
b/src/main/cpp/filelocationpatternconverter.cpp
index 93a9e0d0..b0fc4062 100644
--- a/src/main/cpp/filelocationpatternconverter.cpp
+++ b/src/main/cpp/filelocationpatternconverter.cpp
@@ -38,10 +38,7 @@ PatternConverterPtr 
FileLocationPatternConverter::newInstance(
        return std::make_shared<FileLocationPatternConverter>();
 }
 
-void FileLocationPatternConverter::format(
-       const LoggingEventPtr& event,
-       LogString& toAppendTo,
-       Pool& /* p */ ) const
+void FileLocationPatternConverter::format( 
LOG4CXX_FORMAT_EVENT_FORMAL_PARAMETERS ) const
 {
        append(toAppendTo, event->getLocationInformation().getFileName());
 }
diff --git a/src/main/cpp/fulllocationpatternconverter.cpp 
b/src/main/cpp/fulllocationpatternconverter.cpp
index 7000673e..fe7aee5d 100644
--- a/src/main/cpp/fulllocationpatternconverter.cpp
+++ b/src/main/cpp/fulllocationpatternconverter.cpp
@@ -40,10 +40,7 @@ PatternConverterPtr 
FullLocationPatternConverter::newInstance(
        return std::make_shared<FullLocationPatternConverter>();
 }
 
-void FullLocationPatternConverter::format(
-       const LoggingEventPtr& event,
-       LogString& toAppendTo,
-       Pool& p) const
+void FullLocationPatternConverter::format( 
LOG4CXX_FORMAT_EVENT_FORMAL_PARAMETERS ) const
 {
        append(toAppendTo, event->getLocationInformation().getFileName());
        toAppendTo.append(1, (logchar) 0x28 /* '(' */);
diff --git a/src/main/cpp/htmllayout.cpp b/src/main/cpp/htmllayout.cpp
index 105a40bb..79d0992c 100644
--- a/src/main/cpp/htmllayout.cpp
+++ b/src/main/cpp/htmllayout.cpp
@@ -91,7 +91,7 @@ void HTMLLayout::format(LogString& output,
        output.append(LOG4CXX_EOL);
        output.append(LOG4CXX_STR("<td>"));
 
-       m_priv->dateFormat.format(output, event->getTimeStamp(), p);
+       m_priv->dateFormat.format(output, event->getTimeStamp());
 
 
        output.append(LOG4CXX_STR("</td>"));
@@ -207,7 +207,7 @@ void HTMLLayout::appendHeader(LogString& output, Pool& p)
        output.append(LOG4CXX_EOL);
        output.append(LOG4CXX_STR("Log session start time "));
 
-       m_priv->dateFormat.format(output, Date::currentTime(), p);
+       m_priv->dateFormat.format(output, Date::currentTime());
 
        output.append(LOG4CXX_STR("<br>"));
        output.append(LOG4CXX_EOL);
diff --git a/src/main/cpp/integerpatternconverter.cpp 
b/src/main/cpp/integerpatternconverter.cpp
index de11f566..284c6d36 100644
--- a/src/main/cpp/integerpatternconverter.cpp
+++ b/src/main/cpp/integerpatternconverter.cpp
@@ -38,10 +38,7 @@ PatternConverterPtr IntegerPatternConverter::newInstance(
        return std::make_shared<IntegerPatternConverter>();
 }
 
-void IntegerPatternConverter::format(
-       const ObjectPtr& obj,
-       LogString& toAppendTo,
-       Pool& p) const
+void IntegerPatternConverter::format( LOG4CXX_FORMAT_OBJECT_FORMAL_PARAMETERS 
) const
 {
        IntegerPtr i = LOG4CXX_NS::cast<Integer>(obj);
 
diff --git a/src/main/cpp/jsonlayout.cpp b/src/main/cpp/jsonlayout.cpp
index ac1467e4..98598fc9 100644
--- a/src/main/cpp/jsonlayout.cpp
+++ b/src/main/cpp/jsonlayout.cpp
@@ -143,7 +143,7 @@ void JSONLayout::format(LogString& output,
        }
 
        output.append(LOG4CXX_STR("\"timestamp\": \""));
-       m_priv->dateFormat.format(output, event->getTimeStamp(), p);
+       m_priv->dateFormat.format(output, event->getTimeStamp());
        output.append(LOG4CXX_STR("\","));
        output.append(m_priv->prettyPrint ? LOG4CXX_EOL : LOG4CXX_STR(" "));
 
diff --git a/src/main/cpp/levelpatternconverter.cpp 
b/src/main/cpp/levelpatternconverter.cpp
index 725a8cb0..2994d091 100644
--- a/src/main/cpp/levelpatternconverter.cpp
+++ b/src/main/cpp/levelpatternconverter.cpp
@@ -41,10 +41,7 @@ PatternConverterPtr LevelPatternConverter::newInstance(
        return std::make_shared<LevelPatternConverter>();
 }
 
-void LevelPatternConverter::format(
-       const LoggingEventPtr& event,
-       LogString& toAppendTo,
-       LOG4CXX_NS::helpers::Pool& /* p */) const
+void LevelPatternConverter::format( LOG4CXX_FORMAT_EVENT_FORMAL_PARAMETERS ) 
const
 {
        toAppendTo.append(event->getLevel()->toString());
 }
diff --git a/src/main/cpp/linelocationpatternconverter.cpp 
b/src/main/cpp/linelocationpatternconverter.cpp
index b2b91547..7e22bb5a 100644
--- a/src/main/cpp/linelocationpatternconverter.cpp
+++ b/src/main/cpp/linelocationpatternconverter.cpp
@@ -40,10 +40,7 @@ PatternConverterPtr 
LineLocationPatternConverter::newInstance(
        return std::make_shared<LineLocationPatternConverter>();
 }
 
-void LineLocationPatternConverter::format(
-       const LoggingEventPtr& event,
-       LogString& toAppendTo,
-       Pool& p) const
+void LineLocationPatternConverter::format( 
LOG4CXX_FORMAT_EVENT_FORMAL_PARAMETERS ) const
 {
        StringHelper::toString(
                event->getLocationInformation().getLineNumber(),
diff --git a/src/main/cpp/lineseparatorpatternconverter.cpp 
b/src/main/cpp/lineseparatorpatternconverter.cpp
index 63cfc540..624dc0da 100644
--- a/src/main/cpp/lineseparatorpatternconverter.cpp
+++ b/src/main/cpp/lineseparatorpatternconverter.cpp
@@ -39,18 +39,12 @@ PatternConverterPtr 
LineSeparatorPatternConverter::newInstance(
        return std::make_shared<LineSeparatorPatternConverter>();
 }
 
-void LineSeparatorPatternConverter::format(
-       const LoggingEventPtr& /* event */,
-       LogString& toAppendTo,
-       Pool& /* p */) const
+void LineSeparatorPatternConverter::format( 
LOG4CXX_FORMAT_EVENT_FORMAL_PARAMETERS ) const
 {
        toAppendTo.append(LOG4CXX_EOL);
 }
 
-void LineSeparatorPatternConverter::format(
-       const ObjectPtr& /* event */,
-       LogString& toAppendTo,
-       Pool& /* p */) const
+void LineSeparatorPatternConverter::format( 
LOG4CXX_FORMAT_OBJECT_FORMAL_PARAMETERS ) const
 {
        toAppendTo.append(LOG4CXX_EOL);
 }
diff --git a/src/main/cpp/literalpatternconverter.cpp 
b/src/main/cpp/literalpatternconverter.cpp
index a71617d2..04ef8f23 100644
--- a/src/main/cpp/literalpatternconverter.cpp
+++ b/src/main/cpp/literalpatternconverter.cpp
@@ -60,18 +60,12 @@ PatternConverterPtr LiteralPatternConverter::newInstance(
        return std::make_shared<LiteralPatternConverter>(literal);
 }
 
-void LiteralPatternConverter::format(
-       const LoggingEventPtr& /* event */,
-       LogString& toAppendTo,
-       Pool& /* p */) const
+void LiteralPatternConverter::format( LOG4CXX_FORMAT_EVENT_FORMAL_PARAMETERS ) 
const
 {
        toAppendTo.append(priv->literal);
 }
 
-void LiteralPatternConverter::format(
-       const ObjectPtr& /* event */,
-       LogString& toAppendTo,
-       Pool& /* p */)  const
+void LiteralPatternConverter::format( LOG4CXX_FORMAT_OBJECT_FORMAL_PARAMETERS 
)  const
 {
        toAppendTo.append(priv->literal);
 }
diff --git a/src/main/cpp/loggerpatternconverter.cpp 
b/src/main/cpp/loggerpatternconverter.cpp
index 326390e8..e8ce5a31 100644
--- a/src/main/cpp/loggerpatternconverter.cpp
+++ b/src/main/cpp/loggerpatternconverter.cpp
@@ -40,10 +40,7 @@ PatternConverterPtr LoggerPatternConverter::newInstance(
        return std::make_shared<LoggerPatternConverter>(options);
 }
 
-void LoggerPatternConverter::format(
-       const LoggingEventPtr& event,
-       LogString& toAppendTo,
-       Pool& /* p */ ) const
+void LoggerPatternConverter::format( LOG4CXX_FORMAT_EVENT_FORMAL_PARAMETERS ) 
const
 {
        int initialLength = (int)toAppendTo.length();
        toAppendTo.append(event->getLoggerName());
diff --git a/src/main/cpp/loggingeventpatternconverter.cpp 
b/src/main/cpp/loggingeventpatternconverter.cpp
index 13f9a950..ed8782e9 100644
--- a/src/main/cpp/loggingeventpatternconverter.cpp
+++ b/src/main/cpp/loggingeventpatternconverter.cpp
@@ -40,15 +40,11 @@ 
LoggingEventPatternConverter::LoggingEventPatternConverter(std::unique_ptr<Patte
 
 }
 
-void LoggingEventPatternConverter::format(const ObjectPtr& obj,
-       LogString& output,
-       LOG4CXX_NS::helpers::Pool& p) const
+void LoggingEventPatternConverter::format( 
LOG4CXX_FORMAT_OBJECT_FORMAL_PARAMETERS ) const
 {
-       LoggingEventPtr le = LOG4CXX_NS::cast<LoggingEvent>(obj);
-
-       if (le != NULL)
+       if (auto event = LOG4CXX_NS::cast<LoggingEvent>(obj))
        {
-               format(le, output, p);
+               format( LOG4CXX_FORMAT_EVENT_PARAMETERS );
        }
 }
 
@@ -56,3 +52,16 @@ bool LoggingEventPatternConverter::handlesThrowable() const
 {
        return false;
 }
+
+#if LOG4CXX_ABI_VERSION <= 15
+void LoggingEventPatternConverter::format(const spi::LoggingEventPtr& event, 
LogString& toAppendTo) const
+{
+       helpers::Pool p;
+       format(event, toAppendTo, p);
+}
+#else
+void LoggingEventPatternConverter::format(const spi::LoggingEventPtr& event, 
LogString& toAppendTo, helpers::Pool&) const
+{
+       format(event, toAppendTo);
+}
+#endif
diff --git a/src/main/cpp/mdcpatternconverter.cpp 
b/src/main/cpp/mdcpatternconverter.cpp
index a70bc69e..a4850eaf 100644
--- a/src/main/cpp/mdcpatternconverter.cpp
+++ b/src/main/cpp/mdcpatternconverter.cpp
@@ -42,11 +42,7 @@ PatternConverterPtr MDCPatternConverter::newInstance(
        return std::make_shared<MDCPatternConverter>(LogString(), 
options.front());
 }
 
-void MDCPatternConverter::format
-       ( const spi::LoggingEventPtr& event
-       , LogString&                  toAppendTo
-       , helpers::Pool&           /* p */
-       ) const
+void MDCPatternConverter::format( LOG4CXX_FORMAT_EVENT_FORMAL_PARAMETERS ) 
const
 {
        size_t startIndex = toAppendTo.size();
        auto& info = getFormattingInfo();
diff --git a/src/main/cpp/messagepatternconverter.cpp 
b/src/main/cpp/messagepatternconverter.cpp
index f31ba448..8ee3b4b1 100644
--- a/src/main/cpp/messagepatternconverter.cpp
+++ b/src/main/cpp/messagepatternconverter.cpp
@@ -42,11 +42,7 @@ class QuotedMessagePatternConverter : public 
LoggingEventPatternConverter
                using LoggingEventPatternConverter::format;
 
                // Duplicate any quote character in the event message
-               void format
-                       ( const spi::LoggingEventPtr& event
-                       , LogString&                  toAppendTo
-                       , helpers::Pool&              p
-                       ) const override
+               void format( LOG4CXX_FORMAT_EVENT_FORMAL_PARAMETERS ) const 
override
                {
                        auto& input = event->getRenderedMessage();
                        size_t endIndex, startIndex = 0;
@@ -77,11 +73,7 @@ PatternConverterPtr MessagePatternConverter::newInstance(
        return 
std::make_shared<QuotedMessagePatternConverter>(options.front().front());
 }
 
-void MessagePatternConverter::format
-       ( const spi::LoggingEventPtr& event
-       , LogString&                  toAppendTo
-       , helpers::Pool&           /* p */
-       ) const
+void MessagePatternConverter::format( LOG4CXX_FORMAT_EVENT_FORMAL_PARAMETERS ) 
const
 {
        auto& msg = event->getRenderedMessage();
        auto& info = getFormattingInfo();
diff --git a/src/main/cpp/methodlocationpatternconverter.cpp 
b/src/main/cpp/methodlocationpatternconverter.cpp
index db0cb7aa..f6415e71 100644
--- a/src/main/cpp/methodlocationpatternconverter.cpp
+++ b/src/main/cpp/methodlocationpatternconverter.cpp
@@ -39,10 +39,7 @@ PatternConverterPtr 
MethodLocationPatternConverter::newInstance(
        return std::make_shared<MethodLocationPatternConverter>();
 }
 
-void MethodLocationPatternConverter::format(
-       const LoggingEventPtr& event,
-       LogString& toAppendTo,
-       Pool& /* p */ ) const
+void MethodLocationPatternConverter::format( 
LOG4CXX_FORMAT_EVENT_FORMAL_PARAMETERS ) const
 {
        append(toAppendTo, event->getLocationInformation().getMethodName());
 }
diff --git a/src/main/cpp/ndcpatternconverter.cpp 
b/src/main/cpp/ndcpatternconverter.cpp
index c8a6b500..5e7a98a2 100644
--- a/src/main/cpp/ndcpatternconverter.cpp
+++ b/src/main/cpp/ndcpatternconverter.cpp
@@ -39,10 +39,7 @@ PatternConverterPtr NDCPatternConverter::newInstance(
        return std::make_shared<NDCPatternConverter>();
 }
 
-void NDCPatternConverter::format(
-       const LoggingEventPtr& event,
-       LogString& toAppendTo,
-       Pool& /* p */) const
+void NDCPatternConverter::format( LOG4CXX_FORMAT_EVENT_FORMAL_PARAMETERS ) 
const
 {
        LogString value;
        if (event->getNDC(value))
diff --git a/src/main/cpp/patternconverter.cpp 
b/src/main/cpp/patternconverter.cpp
index c1120da0..b2e23a16 100644
--- a/src/main/cpp/patternconverter.cpp
+++ b/src/main/cpp/patternconverter.cpp
@@ -17,6 +17,7 @@
 
 #include <log4cxx/logstring.h>
 #include <log4cxx/pattern/patternconverter.h>
+#include <log4cxx/helpers/pool.h>
 #include <log4cxx/helpers/transcoder.h>
 #include <log4cxx/private/patternconverter_priv.h>
 
@@ -67,3 +68,16 @@ void PatternConverter::setFormattingInfo(const 
FormattingInfoPtr& newValue)
 {
        m_priv->info = newValue;
 }
+
+#if LOG4CXX_ABI_VERSION <= 15
+void PatternConverter::format(const helpers::ObjectPtr& obj, LogString& 
toAppendTo) const
+{
+       helpers::Pool p;
+       format(obj, toAppendTo, p);
+}
+#else
+void PatternConverter::format(const helpers::ObjectPtr& obj, LogString& 
toAppendTo, helpers::Pool&) const
+{
+       format(obj, toAppendTo);
+}
+#endif
diff --git a/src/main/cpp/patternlayout.cpp b/src/main/cpp/patternlayout.cpp
index 9fdc0034..e7bbe220 100644
--- a/src/main/cpp/patternlayout.cpp
+++ b/src/main/cpp/patternlayout.cpp
@@ -121,7 +121,7 @@ void PatternLayout::format(LogString& output,
        for (auto item : m_priv->patternConverters)
        {
                auto startField = output.length();
-               item->format(event, output, pool);
+               item->format(event, output);
                if (startField < INT_MAX)
                        
item->getFormattingInfo().format(static_cast<int>(startField), output);
        }
diff --git a/src/main/cpp/propertiespatternconverter.cpp 
b/src/main/cpp/propertiespatternconverter.cpp
index 46b148bc..efa47a73 100644
--- a/src/main/cpp/propertiespatternconverter.cpp
+++ b/src/main/cpp/propertiespatternconverter.cpp
@@ -66,10 +66,7 @@ PatternConverterPtr PropertiesPatternConverter::newInstance(
        return std::make_shared<PropertiesPatternConverter>(converterName, 
options[0]);
 }
 
-void PropertiesPatternConverter::format(
-       const LoggingEventPtr& event,
-       LogString& toAppendTo,
-       Pool& /* p */) const
+void PropertiesPatternConverter::format( 
LOG4CXX_FORMAT_EVENT_FORMAL_PARAMETERS ) const
 {
        if (priv->option.length() == 0)
        {
diff --git a/src/main/cpp/relativetimedateformat.cpp 
b/src/main/cpp/relativetimedateformat.cpp
index cb08506e..bcf93d34 100644
--- a/src/main/cpp/relativetimedateformat.cpp
+++ b/src/main/cpp/relativetimedateformat.cpp
@@ -26,11 +26,8 @@ 
LOG4CXX_NS::helpers::RelativeTimeDateFormat::RelativeTimeDateFormat()
 {
 }
 
-void LOG4CXX_NS::helpers::RelativeTimeDateFormat::format(
-       LogString& s,
-       log4cxx_time_t date,
-       Pool& p) const
+void LOG4CXX_NS::helpers::RelativeTimeDateFormat::format( 
LOG4CXX_FORMAT_TIME_FORMAL_PARAMETERS ) const
 {
-       int64_t interval = (date - startTime) / int64_t(1000);
-       StringHelper::toString(interval, s);
+       int64_t interval = (tm - startTime) / int64_t(1000);
+       StringHelper::toString(interval, toAppendTo);
 }
diff --git a/src/main/cpp/relativetimepatternconverter.cpp 
b/src/main/cpp/relativetimepatternconverter.cpp
index e5923d74..e99f5c8f 100644
--- a/src/main/cpp/relativetimepatternconverter.cpp
+++ b/src/main/cpp/relativetimepatternconverter.cpp
@@ -41,10 +41,7 @@ PatternConverterPtr 
RelativeTimePatternConverter::newInstance(
        return def;
 }
 
-void RelativeTimePatternConverter::format(
-       const LoggingEventPtr& event,
-       LogString& toAppendTo,
-       Pool& p) const
+void RelativeTimePatternConverter::format( 
LOG4CXX_FORMAT_EVENT_FORMAL_PARAMETERS ) const
 {
        log4cxx_time_t delta = (event->getTimeStamp() - 
LoggingEvent::getStartTime()) / 1000;
        StringHelper::toString(delta, toAppendTo);
diff --git a/src/main/cpp/rollingpolicybase.cpp 
b/src/main/cpp/rollingpolicybase.cpp
index 10847682..eefb17cb 100644
--- a/src/main/cpp/rollingpolicybase.cpp
+++ b/src/main/cpp/rollingpolicybase.cpp
@@ -122,7 +122,7 @@ void RollingPolicyBase::formatFileName(
        for (auto item : m_priv->patternConverters)
        {
                auto startField = toAppendTo.length();
-               item->format(obj, toAppendTo, pool);
+               item->format(obj, toAppendTo);
                item->getFormattingInfo().format((int)startField, toAppendTo);
        }
 }
diff --git a/src/main/cpp/shortfilelocationpatternconverter.cpp 
b/src/main/cpp/shortfilelocationpatternconverter.cpp
index f4f7d7b3..f568becc 100644
--- a/src/main/cpp/shortfilelocationpatternconverter.cpp
+++ b/src/main/cpp/shortfilelocationpatternconverter.cpp
@@ -37,9 +37,6 @@ PatternConverterPtr 
ShortFileLocationPatternConverter::newInstance(
   return PatternConverterPtr(new ShortFileLocationPatternConverter());
 }
 
-void ShortFileLocationPatternConverter::format(
-    const LoggingEventPtr &event,
-    LogString &toAppendTo,
-    Pool & /* p */ ) const {
+void ShortFileLocationPatternConverter::format( 
LOG4CXX_FORMAT_EVENT_FORMAL_PARAMETERS ) const {
   append(toAppendTo, event->getLocationInformation().getShortFileName());
 }
diff --git a/src/main/cpp/simpledateformat.cpp 
b/src/main/cpp/simpledateformat.cpp
index 130a655f..708fa038 100644
--- a/src/main/cpp/simpledateformat.cpp
+++ b/src/main/cpp/simpledateformat.cpp
@@ -838,16 +838,17 @@ SimpleDateFormat::~SimpleDateFormat()
 }
 
 
-void SimpleDateFormat::format( LogString& s, log4cxx_time_t time, Pool& p ) 
const
+void SimpleDateFormat::format( LOG4CXX_FORMAT_TIME_FORMAL_PARAMETERS ) const
 {
+       helpers::Pool tempPool;
        apr_time_exp_t exploded;
-       apr_status_t stat = m_priv->timeZone->explode( & exploded, time );
+       apr_status_t stat = m_priv->timeZone->explode( & exploded, tm );
 
        if ( stat == APR_SUCCESS )
        {
                for ( PatternTokenList::const_iterator iter = 
m_priv->pattern.begin(); iter != m_priv->pattern.end(); iter++ )
                {
-                       ( * iter )->format( s, exploded, p );
+                       ( * iter )->format( toAppendTo, exploded, tempPool );
                }
        }
 }
diff --git a/src/main/cpp/strftimedateformat.cpp 
b/src/main/cpp/strftimedateformat.cpp
index 6760532b..2de79bef 100644
--- a/src/main/cpp/strftimedateformat.cpp
+++ b/src/main/cpp/strftimedateformat.cpp
@@ -48,10 +48,10 @@ StrftimeDateFormat::~StrftimeDateFormat()
 }
 
 
-void StrftimeDateFormat::format(LogString& s, log4cxx_time_t time, Pool& /* p 
*/ ) const
+void StrftimeDateFormat::format( LOG4CXX_FORMAT_TIME_FORMAL_PARAMETERS ) const
 {
        apr_time_exp_t exploded;
-       apr_status_t stat = m_priv->timeZone->explode(&exploded, time);
+       apr_status_t stat = m_priv->timeZone->explode(&exploded, tm);
 
        if (stat == APR_SUCCESS)
        {
@@ -62,7 +62,7 @@ void StrftimeDateFormat::format(LogString& s, log4cxx_time_t 
time, Pool& /* p */
 
                if (stat == APR_SUCCESS)
                {
-                       
LOG4CXX_NS::helpers::Transcoder::decode(std::string(buf, bufLen), s);
+                       
LOG4CXX_NS::helpers::Transcoder::decode(std::string(buf, bufLen), toAppendTo);
                }
        }
 }
diff --git a/src/main/cpp/threadpatternconverter.cpp 
b/src/main/cpp/threadpatternconverter.cpp
index 9464502a..ec799c3e 100644
--- a/src/main/cpp/threadpatternconverter.cpp
+++ b/src/main/cpp/threadpatternconverter.cpp
@@ -39,10 +39,7 @@ PatternConverterPtr ThreadPatternConverter::newInstance(
        return std::make_shared<ThreadPatternConverter>();
 }
 
-void ThreadPatternConverter::format(
-       const LoggingEventPtr& event,
-       LogString& toAppendTo,
-       Pool& /* p */) const
+void ThreadPatternConverter::format( LOG4CXX_FORMAT_EVENT_FORMAL_PARAMETERS ) 
const
 {
        toAppendTo.append(event->getThreadName());
 }
diff --git a/src/main/cpp/threadusernamepatternconverter.cpp 
b/src/main/cpp/threadusernamepatternconverter.cpp
index 40794e7c..3f49daba 100644
--- a/src/main/cpp/threadusernamepatternconverter.cpp
+++ b/src/main/cpp/threadusernamepatternconverter.cpp
@@ -39,10 +39,7 @@ PatternConverterPtr 
ThreadUsernamePatternConverter::newInstance(
        return std::make_shared<ThreadUsernamePatternConverter>();
 }
 
-void ThreadUsernamePatternConverter::format(
-       const LoggingEventPtr& event,
-       LogString& toAppendTo,
-       Pool& /* p */) const
+void ThreadUsernamePatternConverter::format( 
LOG4CXX_FORMAT_EVENT_FORMAL_PARAMETERS ) const
 {
        toAppendTo.append(event->getThreadUserName());
 }
diff --git a/src/main/cpp/throwableinformationpatternconverter.cpp 
b/src/main/cpp/throwableinformationpatternconverter.cpp
index d03d3b29..38a55fd9 100644
--- a/src/main/cpp/throwableinformationpatternconverter.cpp
+++ b/src/main/cpp/throwableinformationpatternconverter.cpp
@@ -62,10 +62,7 @@ PatternConverterPtr 
ThrowableInformationPatternConverter::newInstance(
        return std::make_shared<ThrowableInformationPatternConverter>(false);
 }
 
-void ThrowableInformationPatternConverter::format(
-       const LoggingEventPtr& /* event */,
-       LogString& /* toAppendTo */,
-       Pool& /* p */) const
+void ThrowableInformationPatternConverter::format( 
LOG4CXX_FORMAT_EVENT_FORMAL_PARAMETERS ) const
 {
 }
 
diff --git a/src/main/include/log4cxx/helpers/cacheddateformat.h 
b/src/main/include/log4cxx/helpers/cacheddateformat.h
index 772ead2e..4f259ead 100644
--- a/src/main/include/log4cxx/helpers/cacheddateformat.h
+++ b/src/main/include/log4cxx/helpers/cacheddateformat.h
@@ -24,7 +24,7 @@ namespace LOG4CXX_NS
 {
 namespace pattern
 {
-class LOG4CXX_EXPORT CachedDateFormat : public LOG4CXX_NS::helpers::DateFormat
+class LOG4CXX_EXPORT CachedDateFormat : public helpers::DateFormat
 {
        public:
                enum
@@ -93,7 +93,7 @@ class LOG4CXX_EXPORT CachedDateFormat : public 
LOG4CXX_NS::helpers::DateFormat
                 *      caching algorithm, use a value of 0 to totally disable
                 *      caching or 1 to only use cache for duplicate requests.
                 */
-               CachedDateFormat(const LOG4CXX_NS::helpers::DateFormatPtr& 
dateFormat, int expiration);
+               CachedDateFormat(const helpers::DateFormatPtr& dateFormat, int 
expiration);
                ~CachedDateFormat();
 
                /**
@@ -101,26 +101,28 @@ class LOG4CXX_EXPORT CachedDateFormat : public 
LOG4CXX_NS::helpers::DateFormat
                 * @param time long time, must be integral number of seconds
                 * @param formatted String corresponding formatted string
                 * @param formatter DateFormat date format
-                * @param pool pool.
                 * @return int position in string of first digit of 
milliseconds,
                 *    -1 indicates no millisecond field, -2 indicates 
unrecognized
                 *    field (likely RelativeTimeDateFormat)
                 */
+               static int findMillisecondStart(
+                       log4cxx_time_t time, const LogString& formatted,
+                       const helpers::DateFormatPtr& formatter);
+#if LOG4CXX_ABI_VERSION <= 15
+               [[deprecated("Use findMillisecondStart() without a Pool 
parameter instead")]]
                static int findMillisecondStart(
                        log4cxx_time_t time, const LogString& formatted,
                        const LOG4CXX_NS::helpers::DateFormatPtr& formatter,
                        LOG4CXX_NS::helpers::Pool& pool);
-
+#endif
+               using DateFormat::format;
                /**
                 * Formats a Date into a date/time string.
                 *
                 *  @param date the date to format.
                 *  @param sbuf the string buffer to write to.
-                *  @param p memory pool.
                 */
-               virtual void format(LogString& sbuf,
-                       log4cxx_time_t date,
-                       LOG4CXX_NS::helpers::Pool& p) const;
+               void format( LOG4CXX_FORMAT_TIME_FORMAL_PARAMETERS ) const 
override;
 
        private:
                /**
@@ -143,7 +145,7 @@ class LOG4CXX_EXPORT CachedDateFormat : public 
LOG4CXX_NS::helpers::DateFormat
                 * will likely cause caching to misbehave.
                 * @param zone TimeZone new timezone
                 */
-               virtual void setTimeZone(const 
LOG4CXX_NS::helpers::TimeZonePtr& zone);
+               void setTimeZone(const helpers::TimeZonePtr& zone) override;
 
                /**
                * Format an integer consistent with the format method.
@@ -151,9 +153,7 @@ class LOG4CXX_EXPORT CachedDateFormat : public 
LOG4CXX_NS::helpers::DateFormat
                * @param n integer value.
                * @param p memory pool used during formatting.
                */
-               virtual void numberFormat(LogString& s,
-                       int n,
-                       LOG4CXX_NS::helpers::Pool& p) const;
+               void numberFormat( LOG4CXX_FORMAT_NUMBER_FORMAL_PARAMETERS ) 
const override;
 
                /**
                 * Gets maximum cache validity for the specified SimpleDateTime
diff --git a/src/main/include/log4cxx/helpers/dateformat.h 
b/src/main/include/log4cxx/helpers/dateformat.h
index 8a827883..ec797c0f 100644
--- a/src/main/include/log4cxx/helpers/dateformat.h
+++ b/src/main/include/log4cxx/helpers/dateformat.h
@@ -45,11 +45,27 @@ class LOG4CXX_EXPORT DateFormat : public Object
 
                /**
                * Formats an log4cxx_time_t into a date/time string.
-               * @param s string to which the date/time string is appended.
+               * @param toAppendTo string to which the date/time string is 
appended.
                * @param tm date to be formatted.
                * @param p memory pool used during formatting.
                */
-               virtual void format(LogString& s, log4cxx_time_t tm, 
LOG4CXX_NS::helpers::Pool& p) const = 0;
+#if LOG4CXX_ABI_VERSION <= 15
+#define LOG4CXX_FORMAT_TIME_FORMAL_PARAMETERS LogString& toAppendTo, 
log4cxx_time_t tm, helpers::Pool& p
+               void format(LogString& toAppendTo, log4cxx_time_t tm) const;
+               /**
+               @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 format() 
without a helpers::Pool parameter.
+               */
+               virtual void format(LogString& toAppendTo, log4cxx_time_t tm, 
LOG4CXX_NS::helpers::Pool& p) const = 0;
+#else
+#define LOG4CXX_FORMAT_TIME_FORMAL_PARAMETERS LogString& toAppendTo, 
log4cxx_time_t tm
+               virtual void format(LogString& toAppendTo, log4cxx_time_t tm) 
const = 0;
+               /**
+               @deprecated The \c pool parameter is not used and will be 
removed in a future version.
+               */
+               [[deprecated("Use format() without a Pool parameter instead")]]
+               void format(LogString& toAppendTo, log4cxx_time_t tm, 
helpers::Pool& p) const;
+#endif
 
                /**
                * Sets the time zone.
@@ -59,14 +75,29 @@ class LOG4CXX_EXPORT DateFormat : public Object
 
                /**
                * Format an integer consistent with the format method.
-               * @param s string to which the numeric string is appended.
+               * @param toAppendTo string to which the numeric string is 
appended.
                * @param n integer value.
                * @param p memory pool used during formatting.
                * @remarks This method is used by CachedDateFormat to
                * format the milliseconds.
                */
-               virtual void numberFormat(LogString& s, int n, 
LOG4CXX_NS::helpers::Pool& p) const;
-
+#if LOG4CXX_ABI_VERSION <= 15
+               void numberFormat(LogString& toAppendTo, int n) const;
+               /**
+               @deprecated The \c pool parameter is not used and will be 
removed in a future version.
+               */
+               [[deprecated("Use numberFormat() without a Pool parameter 
instead")]]
+               virtual void numberFormat(LogString& toAppendTo, int n, 
LOG4CXX_NS::helpers::Pool& p) const;
+#define LOG4CXX_FORMAT_NUMBER_FORMAL_PARAMETERS LogString& toAppendTo, int n, 
helpers::Pool& p
+#else
+               virtual void numberFormat(LogString& toAppendTo, int n) const;
+#define LOG4CXX_FORMAT_NUMBER_FORMAL_PARAMETERS LogString& toAppendTo, int n
+               /**
+               @deprecated The \c pool parameter is not used and will be 
removed in a future version.
+               */
+               [[deprecated("Use numberFormat() without a Pool parameter 
instead")]]
+               void numberFormat(LogString& toAppendTo, int n, helpers::Pool& 
p) const;
+#endif
 
        protected:
                /**
diff --git a/src/main/include/log4cxx/helpers/relativetimedateformat.h 
b/src/main/include/log4cxx/helpers/relativetimedateformat.h
index 6d32c6e6..86fc1578 100644
--- a/src/main/include/log4cxx/helpers/relativetimedateformat.h
+++ b/src/main/include/log4cxx/helpers/relativetimedateformat.h
@@ -33,9 +33,9 @@ class LOG4CXX_EXPORT RelativeTimeDateFormat : public 
DateFormat
 {
        public:
                RelativeTimeDateFormat();
-               virtual void format(LogString& s,
-                       log4cxx_time_t tm,
-                       LOG4CXX_NS::helpers::Pool& p) const;
+
+               using DateFormat::format;
+               void format( LOG4CXX_FORMAT_TIME_FORMAL_PARAMETERS ) const 
override;
 
        private:
                log4cxx_time_t startTime;
diff --git a/src/main/include/log4cxx/helpers/simpledateformat.h 
b/src/main/include/log4cxx/helpers/simpledateformat.h
index 5d8730ea..054287df 100644
--- a/src/main/include/log4cxx/helpers/simpledateformat.h
+++ b/src/main/include/log4cxx/helpers/simpledateformat.h
@@ -84,15 +84,14 @@ class LOG4CXX_EXPORT SimpleDateFormat : public DateFormat
                SimpleDateFormat(const LogString& pattern, const std::locale* 
locale);
                ~SimpleDateFormat();
 
-               virtual void format(LogString& s,
-                       log4cxx_time_t tm,
-                       LOG4CXX_NS::helpers::Pool& p) const;
+               using DateFormat::format;
+               void format( LOG4CXX_FORMAT_TIME_FORMAL_PARAMETERS ) const 
override;
 
                /**
                 * Set time zone.
                 * @param zone new time zone.
                 */
-               void setTimeZone(const TimeZonePtr& zone);
+               void setTimeZone(const TimeZonePtr& zone) override;
 
        private:
                LOG4CXX_DECLARE_PRIVATE_MEMBER_PTR(SimpleDateFormatPrivate, 
m_priv)
diff --git a/src/main/include/log4cxx/helpers/strftimedateformat.h 
b/src/main/include/log4cxx/helpers/strftimedateformat.h
index 44fd1205..57cded7d 100644
--- a/src/main/include/log4cxx/helpers/strftimedateformat.h
+++ b/src/main/include/log4cxx/helpers/strftimedateformat.h
@@ -42,15 +42,14 @@ class LOG4CXX_EXPORT StrftimeDateFormat : public DateFormat
                StrftimeDateFormat(const LogString& pattern);
                ~StrftimeDateFormat();
 
-               virtual void format(LogString& s,
-                       log4cxx_time_t tm,
-                       LOG4CXX_NS::helpers::Pool& p) const;
+               using DateFormat::format;
+               void format( LOG4CXX_FORMAT_TIME_FORMAL_PARAMETERS ) const 
override;
 
                /**
                *    Set time zone.
                * @param zone new time zone.
                */
-               void setTimeZone(const TimeZonePtr& zone);
+               void setTimeZone(const TimeZonePtr& zone) override;
 
 
        private:
diff --git a/src/main/include/log4cxx/pattern/classnamepatternconverter.h 
b/src/main/include/log4cxx/pattern/classnamepatternconverter.h
index cacf0a40..6c78f006 100644
--- a/src/main/include/log4cxx/pattern/classnamepatternconverter.h
+++ b/src/main/include/log4cxx/pattern/classnamepatternconverter.h
@@ -57,9 +57,7 @@ class LOG4CXX_EXPORT ClassNamePatternConverter : public 
NamePatternConverter
 
                using NamePatternConverter::format;
 
-               void format(const spi::LoggingEventPtr& event,
-                       LogString& toAppendTo,
-                       helpers::Pool& p) const override;
+               void format( LOG4CXX_FORMAT_EVENT_FORMAL_PARAMETERS ) const 
override;
 };
 
 }
diff --git a/src/main/include/log4cxx/pattern/colorendpatternconverter.h 
b/src/main/include/log4cxx/pattern/colorendpatternconverter.h
index 394eaf5e..3f345167 100644
--- a/src/main/include/log4cxx/pattern/colorendpatternconverter.h
+++ b/src/main/include/log4cxx/pattern/colorendpatternconverter.h
@@ -54,9 +54,7 @@ class LOG4CXX_EXPORT ColorEndPatternConverter
 
                using LoggingEventPatternConverter::format;
 
-               void format(const spi::LoggingEventPtr& event,
-                       LogString& toAppendTo,
-                       helpers::Pool& p) const override;
+               void format( LOG4CXX_FORMAT_EVENT_FORMAL_PARAMETERS ) const 
override;
 };
 
 }
diff --git a/src/main/include/log4cxx/pattern/colorstartpatternconverter.h 
b/src/main/include/log4cxx/pattern/colorstartpatternconverter.h
index 8f225768..07fb83bb 100644
--- a/src/main/include/log4cxx/pattern/colorstartpatternconverter.h
+++ b/src/main/include/log4cxx/pattern/colorstartpatternconverter.h
@@ -56,9 +56,7 @@ class LOG4CXX_EXPORT ColorStartPatternConverter
 
                using LoggingEventPatternConverter::format;
 
-               void format(const spi::LoggingEventPtr& event,
-                       LogString& toAppendTo,
-                       helpers::Pool& p) const override;
+               void format( LOG4CXX_FORMAT_EVENT_FORMAL_PARAMETERS ) const 
override;
 
                void setFatalColor(const LogString& color);
                void setErrorColor(const LogString& color);
diff --git a/src/main/include/log4cxx/pattern/datepatternconverter.h 
b/src/main/include/log4cxx/pattern/datepatternconverter.h
index 371bd0a4..ff7acb73 100644
--- a/src/main/include/log4cxx/pattern/datepatternconverter.h
+++ b/src/main/include/log4cxx/pattern/datepatternconverter.h
@@ -75,28 +75,28 @@ class LOG4CXX_EXPORT DatePatternConverter : public 
LoggingEventPatternConverter
                static PatternConverterPtr newInstance(
                        const std::vector<LogString>& options);
 
+               using LoggingEventPatternConverter::format;
                /**
                 * Append to \c output a textual version of the timestamp in \c 
event.
                 */
-               void format(const spi::LoggingEventPtr& event,
-                       LogString& output,
-                       helpers::Pool& p) const override;
+               void format( LOG4CXX_FORMAT_EVENT_FORMAL_PARAMETERS ) const 
override;
 
                /**
                 * Append to \c output a textual version of the date or 
timestamp in \c obj.
                 *
                 * Nothing is added to \c output if \c obj does not point to a 
Date or spi::LoggingEvent.
                 */
-               void format(const helpers::ObjectPtr& obj,
-                       LogString& output,
-                       helpers::Pool& p) const override;
+               void format( LOG4CXX_FORMAT_OBJECT_FORMAL_PARAMETERS ) const 
override;
 
                /**
                 * Append to \c toAppendTo a textual version of \c date.
                 */
+               void format(const helpers::DatePtr& date, LogString& 
toAppendTo) const;
+#if LOG4CXX_ABI_VERSION <= 15
                void format(const helpers::DatePtr& date,
                        LogString& toAppendTo,
                        helpers::Pool& p) const;
+#endif
 };
 
 LOG4CXX_PTR_DEF(DatePatternConverter);
diff --git a/src/main/include/log4cxx/pattern/filelocationpatternconverter.h 
b/src/main/include/log4cxx/pattern/filelocationpatternconverter.h
index b68b7bcd..c3ee3a20 100644
--- a/src/main/include/log4cxx/pattern/filelocationpatternconverter.h
+++ b/src/main/include/log4cxx/pattern/filelocationpatternconverter.h
@@ -54,9 +54,7 @@ class LOG4CXX_EXPORT FileLocationPatternConverter
 
                using LoggingEventPatternConverter::format;
 
-               void format(const spi::LoggingEventPtr& event,
-                       LogString& toAppendTo,
-                       helpers::Pool& p) const override;
+               void format( LOG4CXX_FORMAT_EVENT_FORMAL_PARAMETERS ) const 
override;
 };
 
 }
diff --git a/src/main/include/log4cxx/pattern/fulllocationpatternconverter.h 
b/src/main/include/log4cxx/pattern/fulllocationpatternconverter.h
index 7c696cd8..cdbcd0a4 100644
--- a/src/main/include/log4cxx/pattern/fulllocationpatternconverter.h
+++ b/src/main/include/log4cxx/pattern/fulllocationpatternconverter.h
@@ -54,9 +54,7 @@ class LOG4CXX_EXPORT FullLocationPatternConverter
 
                using LoggingEventPatternConverter::format;
 
-               void format(const spi::LoggingEventPtr& event,
-                       LogString& toAppendTo,
-                       helpers::Pool& p) const override;
+               void format( LOG4CXX_FORMAT_EVENT_FORMAL_PARAMETERS ) const 
override;
 };
 
 }
diff --git a/src/main/include/log4cxx/pattern/integerpatternconverter.h 
b/src/main/include/log4cxx/pattern/integerpatternconverter.h
index f5c775d8..c5886a08 100644
--- a/src/main/include/log4cxx/pattern/integerpatternconverter.h
+++ b/src/main/include/log4cxx/pattern/integerpatternconverter.h
@@ -51,9 +51,8 @@ class LOG4CXX_EXPORT IntegerPatternConverter : public 
PatternConverter
                static PatternConverterPtr newInstance(
                        const std::vector<LogString>& options);
 
-               void format(const helpers::ObjectPtr& obj,
-                       LogString& toAppendTo,
-                       helpers::Pool& p) const override;
+               using PatternConverter::format;
+               void format( LOG4CXX_FORMAT_OBJECT_FORMAL_PARAMETERS ) const 
override;
 };
 
 LOG4CXX_PTR_DEF(IntegerPatternConverter);
diff --git a/src/main/include/log4cxx/pattern/levelpatternconverter.h 
b/src/main/include/log4cxx/pattern/levelpatternconverter.h
index 1b3be654..ad70e8a2 100644
--- a/src/main/include/log4cxx/pattern/levelpatternconverter.h
+++ b/src/main/include/log4cxx/pattern/levelpatternconverter.h
@@ -53,9 +53,7 @@ class LOG4CXX_EXPORT LevelPatternConverter : public 
LoggingEventPatternConverter
 
                using LoggingEventPatternConverter::format;
 
-               void format(const spi::LoggingEventPtr& event,
-                       LogString& toAppendTo,
-                       helpers::Pool& p) const override;
+               void format( LOG4CXX_FORMAT_EVENT_FORMAL_PARAMETERS ) const 
override;
 
                LogString getStyleClass(const   helpers::ObjectPtr& e) const 
override;
 };
diff --git a/src/main/include/log4cxx/pattern/linelocationpatternconverter.h 
b/src/main/include/log4cxx/pattern/linelocationpatternconverter.h
index 32514dee..28ac591b 100644
--- a/src/main/include/log4cxx/pattern/linelocationpatternconverter.h
+++ b/src/main/include/log4cxx/pattern/linelocationpatternconverter.h
@@ -54,9 +54,7 @@ class LOG4CXX_EXPORT LineLocationPatternConverter
 
                using LoggingEventPatternConverter::format;
 
-               void format(const spi::LoggingEventPtr& event,
-                       LogString& toAppendTo,
-                       helpers::Pool& p) const override;
+               void format( LOG4CXX_FORMAT_EVENT_FORMAL_PARAMETERS ) const 
override;
 };
 
 }
diff --git a/src/main/include/log4cxx/pattern/lineseparatorpatternconverter.h 
b/src/main/include/log4cxx/pattern/lineseparatorpatternconverter.h
index a0b49952..d53a489d 100644
--- a/src/main/include/log4cxx/pattern/lineseparatorpatternconverter.h
+++ b/src/main/include/log4cxx/pattern/lineseparatorpatternconverter.h
@@ -54,13 +54,9 @@ class LOG4CXX_EXPORT LineSeparatorPatternConverter
 
                using LoggingEventPatternConverter::format;
 
-               void format(const spi::LoggingEventPtr& event,
-                       LogString& toAppendTo,
-                       helpers::Pool& p) const override;
+               void format( LOG4CXX_FORMAT_EVENT_FORMAL_PARAMETERS ) const 
override;
 
-               void format(const helpers::ObjectPtr& obj,
-                       LogString& toAppendTo,
-                       helpers::Pool& p) const override;
+               void format( LOG4CXX_FORMAT_OBJECT_FORMAL_PARAMETERS ) const 
override;
 };
 
 }
diff --git a/src/main/include/log4cxx/pattern/literalpatternconverter.h 
b/src/main/include/log4cxx/pattern/literalpatternconverter.h
index 19ba6a97..d0802314 100644
--- a/src/main/include/log4cxx/pattern/literalpatternconverter.h
+++ b/src/main/include/log4cxx/pattern/literalpatternconverter.h
@@ -49,13 +49,9 @@ class LOG4CXX_EXPORT LiteralPatternConverter : public 
LoggingEventPatternConvert
 
                using LoggingEventPatternConverter::format;
 
-               void format(const spi::LoggingEventPtr& event,
-                       LogString& toAppendTo,
-                       helpers::Pool& p) const override;
+               void format( LOG4CXX_FORMAT_EVENT_FORMAL_PARAMETERS ) const 
override;
 
-               void format(const helpers::ObjectPtr& obj,
-                       LogString& toAppendTo,
-                       helpers::Pool& p) const override;
+               void format( LOG4CXX_FORMAT_OBJECT_FORMAL_PARAMETERS ) const 
override;
 };
 
 }
diff --git a/src/main/include/log4cxx/pattern/loggerpatternconverter.h 
b/src/main/include/log4cxx/pattern/loggerpatternconverter.h
index f91e7452..b00bb7f3 100644
--- a/src/main/include/log4cxx/pattern/loggerpatternconverter.h
+++ b/src/main/include/log4cxx/pattern/loggerpatternconverter.h
@@ -54,9 +54,7 @@ class LOG4CXX_EXPORT LoggerPatternConverter : public 
NamePatternConverter
 
                using NamePatternConverter::format;
 
-               void format(const spi::LoggingEventPtr& event,
-                       LogString& toAppendTo,
-                       helpers::Pool& p) const override;
+               void format( LOG4CXX_FORMAT_EVENT_FORMAL_PARAMETERS ) const 
override;
 };
 
 }
diff --git a/src/main/include/log4cxx/pattern/loggingeventpatternconverter.h 
b/src/main/include/log4cxx/pattern/loggingeventpatternconverter.h
index 76bb0bd6..b5041463 100644
--- a/src/main/include/log4cxx/pattern/loggingeventpatternconverter.h
+++ b/src/main/include/log4cxx/pattern/loggingeventpatternconverter.h
@@ -54,20 +54,36 @@ class LOG4CXX_EXPORT LoggingEventPatternConverter : public 
PatternConverter
                LOG4CXX_CAST_ENTRY_CHAIN(PatternConverter)
                END_LOG4CXX_CAST_MAP()
 
+               using PatternConverter::format;
                /**
                 * Formats an event into a string buffer.
-                * @param event event to format, may not be null.
+                * @param event holds the attributes, may not be null.
                 * @param toAppendTo string buffer to which the formatted event 
will be appended.  May not be null.
-                * @param p pool for memory allocations needing during format.
                 */
+#if LOG4CXX_ABI_VERSION <= 15
+               void format(const spi::LoggingEventPtr& event, LogString& 
toAppendTo) const;
+               /**
+               @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 format() 
without a helpers::Pool parameter.
+               */
                virtual void format(
                        const spi::LoggingEventPtr& event,
                        LogString& toAppendTo,
                        helpers::Pool& p) const = 0;
+#define LOG4CXX_FORMAT_EVENT_FORMAL_PARAMETERS const spi::LoggingEventPtr& 
event, LogString& toAppendTo, helpers::Pool& p
+#define LOG4CXX_FORMAT_EVENT_PARAMETERS event, toAppendTo, p
+#else
+               virtual void format(const spi::LoggingEventPtr& event, 
LogString& toAppendTo) const = 0;
+#define LOG4CXX_FORMAT_EVENT_FORMAL_PARAMETERS const spi::LoggingEventPtr& 
event, LogString& toAppendTo
+#define LOG4CXX_FORMAT_EVENT_PARAMETERS event, toAppendTo
+               /**
+               @deprecated The \c pool parameter is not used and will be 
removed in a future version.
+               */
+               [[deprecated("Use format() without a Pool parameter instead")]]
+               void format(const spi::LoggingEventPtr& event, LogString& 
toAppendTo, helpers::Pool& p) const;
+#endif
 
-               void format(const helpers::ObjectPtr& obj,
-                       LogString& toAppendTo,
-                       helpers::Pool& p) const override;
+               void format( LOG4CXX_FORMAT_OBJECT_FORMAL_PARAMETERS ) const 
override;
 
                /**
                 * Normally pattern converters are not meant to handle 
Exceptions although
diff --git a/src/main/include/log4cxx/pattern/mdcpatternconverter.h 
b/src/main/include/log4cxx/pattern/mdcpatternconverter.h
index f3ce34f6..f7a4e1b0 100644
--- a/src/main/include/log4cxx/pattern/mdcpatternconverter.h
+++ b/src/main/include/log4cxx/pattern/mdcpatternconverter.h
@@ -52,11 +52,7 @@ class LOG4CXX_EXPORT MDCPatternConverter : public 
LoggingEventPatternConverter
 
                using LoggingEventPatternConverter::format;
 
-               void format
-                       ( const spi::LoggingEventPtr& event
-                       , LogString&                  toAppendTo
-                       , helpers::Pool&              p
-                       ) const override;
+               void format( LOG4CXX_FORMAT_EVENT_FORMAL_PARAMETERS ) const 
override;
 };
 }
 }
diff --git a/src/main/include/log4cxx/pattern/messagepatternconverter.h 
b/src/main/include/log4cxx/pattern/messagepatternconverter.h
index b9e9a3a3..e9441fc1 100644
--- a/src/main/include/log4cxx/pattern/messagepatternconverter.h
+++ b/src/main/include/log4cxx/pattern/messagepatternconverter.h
@@ -53,9 +53,7 @@ class LOG4CXX_EXPORT MessagePatternConverter : public 
LoggingEventPatternConvert
 
                using LoggingEventPatternConverter::format;
 
-               void format(const spi::LoggingEventPtr& event,
-                       LogString& toAppendTo,
-                       helpers::Pool& p) const override;
+               void format( LOG4CXX_FORMAT_EVENT_FORMAL_PARAMETERS ) const 
override;
 };
 }
 }
diff --git a/src/main/include/log4cxx/pattern/methodlocationpatternconverter.h 
b/src/main/include/log4cxx/pattern/methodlocationpatternconverter.h
index 572301af..3ecc237a 100644
--- a/src/main/include/log4cxx/pattern/methodlocationpatternconverter.h
+++ b/src/main/include/log4cxx/pattern/methodlocationpatternconverter.h
@@ -54,9 +54,7 @@ class LOG4CXX_EXPORT MethodLocationPatternConverter
 
                using LoggingEventPatternConverter::format;
 
-               void format(const spi::LoggingEventPtr& event,
-                       LogString& toAppendTo,
-                       helpers::Pool& p) const override;
+               void format( LOG4CXX_FORMAT_EVENT_FORMAL_PARAMETERS ) const 
override;
 };
 }
 }
diff --git a/src/main/include/log4cxx/pattern/ndcpatternconverter.h 
b/src/main/include/log4cxx/pattern/ndcpatternconverter.h
index e00f8fc8..7377d01c 100644
--- a/src/main/include/log4cxx/pattern/ndcpatternconverter.h
+++ b/src/main/include/log4cxx/pattern/ndcpatternconverter.h
@@ -53,9 +53,7 @@ class LOG4CXX_EXPORT NDCPatternConverter : public 
LoggingEventPatternConverter
 
                using LoggingEventPatternConverter::format;
 
-               void format(const spi::LoggingEventPtr& event,
-                       LogString& toAppendTo,
-                       helpers::Pool& p) const override;
+               void format( LOG4CXX_FORMAT_EVENT_FORMAL_PARAMETERS ) const 
override;
 };
 }
 }
diff --git a/src/main/include/log4cxx/pattern/patternconverter.h 
b/src/main/include/log4cxx/pattern/patternconverter.h
index 8e4852e5..e53e49dc 100644
--- a/src/main/include/log4cxx/pattern/patternconverter.h
+++ b/src/main/include/log4cxx/pattern/patternconverter.h
@@ -68,13 +68,28 @@ class LOG4CXX_EXPORT PatternConverter : public virtual 
helpers::Object
 
                /**
                 * Formats an object into a string buffer.
-                * @param obj event to format, may not be null.
+                * @param obj holds the attributes, may not be null.
                 * @param toAppendTo string buffer to which the formatted event 
will be appended.  May not be null.
-                * @param p pool for any allocations necessary during 
formatting.
                 */
+#if LOG4CXX_ABI_VERSION <= 15
+               void format(const helpers::ObjectPtr& obj, LogString& 
toAppendTo) const;
+               /**
+               @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 format() 
without a helpers::Pool parameter.
+               */
                virtual void format(const helpers::ObjectPtr& obj,
                        LogString& toAppendTo,
                        helpers::Pool& p) const = 0;
+#define LOG4CXX_FORMAT_OBJECT_FORMAL_PARAMETERS const helpers::ObjectPtr& obj, 
LogString& toAppendTo, helpers::Pool& p
+#else
+               virtual void format(const helpers::ObjectPtr& obj, LogString& 
toAppendTo) const = 0;
+#define LOG4CXX_FORMAT_OBJECT_FORMAL_PARAMETERS const helpers::ObjectPtr& obj, 
LogString& toAppendTo
+               /**
+               @deprecated The \c pool parameter is not used and will be 
removed in a future version.
+               */
+               [[deprecated("Use format() without a Pool parameter instead")]]
+               virtual void format(const helpers::ObjectPtr& obj, LogString& 
toAppendTo, helpers::Pool& p) const;
+#endif
 
                /**
                 * This method returns the name of the conversion pattern.
diff --git a/src/main/include/log4cxx/pattern/propertiespatternconverter.h 
b/src/main/include/log4cxx/pattern/propertiespatternconverter.h
index e24a2686..d7047231 100644
--- a/src/main/include/log4cxx/pattern/propertiespatternconverter.h
+++ b/src/main/include/log4cxx/pattern/propertiespatternconverter.h
@@ -66,9 +66,7 @@ class LOG4CXX_EXPORT PropertiesPatternConverter
 
                using LoggingEventPatternConverter::format;
 
-               void format(const spi::LoggingEventPtr& event,
-                       LogString& toAppendTo,
-                       LOG4CXX_NS::helpers::Pool& p) const override;
+               void format( LOG4CXX_FORMAT_EVENT_FORMAL_PARAMETERS ) const 
override;
 };
 }
 }
diff --git a/src/main/include/log4cxx/pattern/relativetimepatternconverter.h 
b/src/main/include/log4cxx/pattern/relativetimepatternconverter.h
index 028ec018..f74fbf99 100644
--- a/src/main/include/log4cxx/pattern/relativetimepatternconverter.h
+++ b/src/main/include/log4cxx/pattern/relativetimepatternconverter.h
@@ -57,9 +57,7 @@ class LOG4CXX_EXPORT RelativeTimePatternConverter : public 
LoggingEventPatternCo
                using LoggingEventPatternConverter::format;
 
 
-               void format(const spi::LoggingEventPtr& event,
-                       LogString& toAppendTo,
-                       LOG4CXX_NS::helpers::Pool& p) const override;
+               void format( LOG4CXX_FORMAT_EVENT_FORMAL_PARAMETERS ) const 
override;
 };
 }
 }
diff --git 
a/src/main/include/log4cxx/pattern/shortfilelocationpatternconverter.h 
b/src/main/include/log4cxx/pattern/shortfilelocationpatternconverter.h
index 1f5bcd33..175c7683 100644
--- a/src/main/include/log4cxx/pattern/shortfilelocationpatternconverter.h
+++ b/src/main/include/log4cxx/pattern/shortfilelocationpatternconverter.h
@@ -57,9 +57,7 @@ class LOG4CXX_EXPORT ShortFileLocationPatternConverter
 
                using LoggingEventPatternConverter::format;
 
-               void format(const spi::LoggingEventPtr& event,
-                       LogString& toAppendTo,
-                       helpers::Pool& p) const override;
+               void format( LOG4CXX_FORMAT_EVENT_FORMAL_PARAMETERS ) const 
override;
 };
 
 }
diff --git a/src/main/include/log4cxx/pattern/threadpatternconverter.h 
b/src/main/include/log4cxx/pattern/threadpatternconverter.h
index 0292f4c8..e30c01e2 100644
--- a/src/main/include/log4cxx/pattern/threadpatternconverter.h
+++ b/src/main/include/log4cxx/pattern/threadpatternconverter.h
@@ -53,9 +53,7 @@ class LOG4CXX_EXPORT ThreadPatternConverter : public 
LoggingEventPatternConverte
 
                using LoggingEventPatternConverter::format;
 
-               void format(const spi::LoggingEventPtr& event,
-                       LogString& toAppendTo,
-                       helpers::Pool& p) const override;
+               void format( LOG4CXX_FORMAT_EVENT_FORMAL_PARAMETERS ) const 
override;
 };
 }
 }
diff --git a/src/main/include/log4cxx/pattern/threadusernamepatternconverter.h 
b/src/main/include/log4cxx/pattern/threadusernamepatternconverter.h
index fc18813b..9109d1c8 100644
--- a/src/main/include/log4cxx/pattern/threadusernamepatternconverter.h
+++ b/src/main/include/log4cxx/pattern/threadusernamepatternconverter.h
@@ -42,9 +42,9 @@ class LOG4CXX_EXPORT ThreadUsernamePatternConverter : public 
LoggingEventPattern
            static PatternConverterPtr newInstance(
                    const std::vector<LogString>& options);
 
-           void format(const spi::LoggingEventPtr& event,
-                   LogString& toAppendTo,
-                   LOG4CXX_NS::helpers::Pool& p) const override;
+               using LoggingEventPatternConverter::format;
+
+               void format( LOG4CXX_FORMAT_EVENT_FORMAL_PARAMETERS ) const 
override;
 };
 
 }
diff --git 
a/src/main/include/log4cxx/pattern/throwableinformationpatternconverter.h 
b/src/main/include/log4cxx/pattern/throwableinformationpatternconverter.h
index 54900974..d9093dc5 100644
--- a/src/main/include/log4cxx/pattern/throwableinformationpatternconverter.h
+++ b/src/main/include/log4cxx/pattern/throwableinformationpatternconverter.h
@@ -59,9 +59,7 @@ class LOG4CXX_EXPORT ThrowableInformationPatternConverter
 
                using LoggingEventPatternConverter::format;
 
-               void format(const spi::LoggingEventPtr& event,
-                       LogString& toAppendTo,
-                       helpers::Pool& p) const override;
+               void format( LOG4CXX_FORMAT_EVENT_FORMAL_PARAMETERS ) const 
override;
 
                /**
                 * This converter obviously handles throwables.
diff --git a/src/site/doxy/Doxyfile.in b/src/site/doxy/Doxyfile.in
index 6afae8be..a1845656 100644
--- a/src/site/doxy/Doxyfile.in
+++ b/src/site/doxy/Doxyfile.in
@@ -2354,6 +2354,11 @@ PREDEFINED             = LOG4CXX_NS=log4cxx \
                          LOG4CXX_ACTIVATE_OPTIONS_PARAMETER=p \
                          LOG4CXX_APPEND_FORMAL_PARAMETERS="const 
spi::LoggingEventPtr& event, helpers::Pool& p" \
                          LOG4CXX_APPEND_PARAMETERS="event, p" \
+                         LOG4CXX_FORMAT_OBJECT_FORMAL_PARAMETERS="const 
helpers::ObjectPtr& obj, LogString& toAppendTo, helpers::Pool& p" \
+                         LOG4CXX_FORMAT_TIME_FORMAL_PARAMETERS="LogString& 
toAppendTo, log4cxx_time_t tm, helpers::Pool& p" \
+                         LOG4CXX_FORMAT_NUMBER_FORMAL_PARAMETERS="LogString& 
toAppendTo, int n, helpers::Pool& p" \
+                         LOG4CXX_FORMAT_EVENT_FORMAL_PARAMETERS="const 
spi::LoggingEventPtr& event, LogString& toAppendTo, helpers::Pool& p" \
+                         LOG4CXX_FORMAT_EVENT_PARAMETERS="event, toAppendTo, 
p" \
                          LOG4CXX_HAS_DOMCONFIGURATOR=1 \
                          LOG4CXX_ASYNC_BUFFER_SUPPORTS_FMT=1 \
                          __LOG4CXX_FUNC__=compiler_dependent
diff --git a/src/test/cpp/helpers/absolutetimedateformattestcase.cpp 
b/src/test/cpp/helpers/absolutetimedateformattestcase.cpp
index d88b0a5c..60ba77cc 100644
--- a/src/test/cpp/helpers/absolutetimedateformattestcase.cpp
+++ b/src/test/cpp/helpers/absolutetimedateformattestcase.cpp
@@ -68,8 +68,7 @@ private:
                AbsoluteTimeDateFormat formatter;
                formatter.setTimeZone(timeZone);
                LogString actual;
-               Pool p;
-               formatter.format(actual, date, p);
+               formatter.format(actual, date);
                LOGUNIT_ASSERT_EQUAL(expected, actual);
        }
 
@@ -176,10 +175,9 @@ public:
         */
        void test8()
        {
-               Pool p;
                LogString numb;
                AbsoluteTimeDateFormat formatter;
-               formatter.numberFormat(numb, 87, p);
+               formatter.numberFormat(numb, 87);
                LOGUNIT_ASSERT_EQUAL((LogString) LOG4CXX_STR("87"), numb);
        }
 
diff --git a/src/test/cpp/helpers/cacheddateformattestcase.cpp 
b/src/test/cpp/helpers/cacheddateformattestcase.cpp
index 1da31a10..df4c8ba9 100644
--- a/src/test/cpp/helpers/cacheddateformattestcase.cpp
+++ b/src/test/cpp/helpers/cacheddateformattestcase.cpp
@@ -97,27 +97,26 @@ public:
                gmtFormat.setTimeZone(TimeZone::getGMT());
 
                apr_time_t jul1 = MICROSECONDS_PER_DAY * 12601L;
-               Pool p;
 
                LogString actual;
 
-               gmtFormat.format(actual, jul1, p);
+               gmtFormat.format(actual, jul1);
                LOGUNIT_ASSERT_EQUAL((LogString) LOG4CXX_STR("00:00:00,000"), 
actual);
                actual.erase(actual.begin(), actual.end());
 
-               gmtFormat.format(actual, jul1 + 8000, p);
+               gmtFormat.format(actual, jul1 + 8000);
                LOGUNIT_ASSERT_EQUAL((LogString) LOG4CXX_STR("00:00:00,008"), 
actual);
                actual.erase(actual.begin(), actual.end());
 
-               gmtFormat.format(actual, jul1 + 17000, p);
+               gmtFormat.format(actual, jul1 + 17000);
                LOGUNIT_ASSERT_EQUAL((LogString) LOG4CXX_STR("00:00:00,017"), 
actual);
                actual.erase(actual.begin(), actual.end());
 
-               gmtFormat.format(actual, jul1 + 237000, p);
+               gmtFormat.format(actual, jul1 + 237000);
                LOGUNIT_ASSERT_EQUAL((LogString) LOG4CXX_STR("00:00:00,237"), 
actual);
                actual.erase(actual.begin(), actual.end());
 
-               gmtFormat.format(actual, jul1 + 1415000, p);
+               gmtFormat.format(actual, jul1 + 1415000);
                LOGUNIT_ASSERT_EQUAL((LogString) LOG4CXX_STR("00:00:01,415"), 
actual);
                actual.erase(actual.begin(), actual.end());
 
@@ -138,17 +137,16 @@ public:
                CachedDateFormat chicagoFormat(chicagoBase, 1000000);
                
chicagoFormat.setTimeZone(TimeZone::getTimeZone(LOG4CXX_STR("GMT-5")));
 
-               Pool p;
                LogString actual;
-               gmtFormat.format(actual, jul2, p);
+               gmtFormat.format(actual, jul2);
                LOGUNIT_ASSERT_EQUAL((LogString) LOG4CXX_STR("00:00:00,000"), 
actual);
 
                actual.erase(actual.begin(), actual.end());
-               chicagoFormat.format(actual, jul2, p);
+               chicagoFormat.format(actual, jul2);
                LOGUNIT_ASSERT_EQUAL((LogString) LOG4CXX_STR("19:00:00,000"), 
actual);
 
                actual.erase(actual.begin(), actual.end());
-               gmtFormat.format(actual, jul2, p);
+               gmtFormat.format(actual, jul2);
                LOGUNIT_ASSERT_EQUAL((LogString) LOG4CXX_STR("00:00:00,000"), 
actual);
        }
 
@@ -166,45 +164,40 @@ public:
 
                apr_time_t ticks = MICROSECONDS_PER_DAY * -7;
 
-               Pool p;
-
                LogString actual;
-
-
-               gmtFormat.format(actual, ticks, p);
+               gmtFormat.format(actual, ticks);
                LOGUNIT_ASSERT_EQUAL((LogString) LOG4CXX_STR("00:00:00,000"), 
actual);
                actual.erase(actual.begin(), actual.end());
 
                //
                //   APR's explode_time method does not properly calculate 
tm_usec
                //     prior to 1 Jan 1970 on Unix
-               gmtFormat.format(actual, ticks + 8000, p);
+               gmtFormat.format(actual, ticks + 8000);
                LOGUNIT_ASSERT_EQUAL((LogString) LOG4CXX_STR("00:00:00,008"), 
actual);
                actual.erase(actual.begin(), actual.end());
 
-               gmtFormat.format(actual, ticks + 17000, p);
+               gmtFormat.format(actual, ticks + 17000);
                LOGUNIT_ASSERT_EQUAL((LogString) LOG4CXX_STR("00:00:00,017"), 
actual);
                actual.erase(actual.begin(), actual.end());
 
-               gmtFormat.format(actual, ticks + 237000, p);
+               gmtFormat.format(actual, ticks + 237000);
                LOGUNIT_ASSERT_EQUAL((LogString) LOG4CXX_STR("00:00:00,237"), 
actual);
                actual.erase(actual.begin(), actual.end());
 
-               gmtFormat.format(actual, ticks + 1423000, p);
+               gmtFormat.format(actual, ticks + 1423000);
                LOGUNIT_ASSERT_EQUAL((LogString) LOG4CXX_STR("00:00:01,423"), 
actual);
        }
 
        void assertFormattedEquals(
                const DateFormatPtr & baseFormat,
                const CachedDateFormat & cachedFormat,
-               apr_time_t date,
-               Pool & p)
+               apr_time_t date)
        {
                LogString expected;
                LogString actual;
 
-               baseFormat->format(expected, date, p);
-               cachedFormat.format(actual, date, p);
+               baseFormat->format(expected, date);
+               cachedFormat.format(actual, date);
 
 
                LOGUNIT_ASSERT_EQUAL(expected, actual);
@@ -228,13 +221,11 @@ public:
                //   use a date in 2000 to attempt to confuse the millisecond 
locator
                apr_time_t ticks = MICROSECONDS_PER_DAY * 11141;
 
-               Pool p;
-
-               assertFormattedEquals(baseFormat, cachedFormat, ticks, p);
-               assertFormattedEquals(baseFormat, cachedFormat, ticks + 8000, 
p);
-               assertFormattedEquals(baseFormat, cachedFormat, ticks + 17000, 
p);
-               assertFormattedEquals(baseFormat, cachedFormat, ticks + 237000, 
p);
-               assertFormattedEquals(baseFormat, cachedFormat, ticks + 
1415000, p);
+               assertFormattedEquals(baseFormat, cachedFormat, ticks);
+               assertFormattedEquals(baseFormat, cachedFormat, ticks + 8000);
+               assertFormattedEquals(baseFormat, cachedFormat, ticks + 17000);
+               assertFormattedEquals(baseFormat, cachedFormat, ticks + 237000);
+               assertFormattedEquals(baseFormat, cachedFormat, ticks + 
1415000);
        }
 
 
@@ -257,11 +248,11 @@ public:
 
                        Pool p;
 
-                       assertFormattedEquals(baseFormat, cachedFormat, ticks, 
p);
-                       assertFormattedEquals(baseFormat, cachedFormat, ticks + 
8000, p);
-                       assertFormattedEquals(baseFormat, cachedFormat, ticks + 
17000, p);
-                       assertFormattedEquals(baseFormat, cachedFormat, ticks + 
237000, p);
-                       assertFormattedEquals(baseFormat, cachedFormat, ticks + 
1415000, p);
+                       assertFormattedEquals(baseFormat, cachedFormat, ticks);
+                       assertFormattedEquals(baseFormat, cachedFormat, ticks + 
8000);
+                       assertFormattedEquals(baseFormat, cachedFormat, ticks + 
17000);
+                       assertFormattedEquals(baseFormat, cachedFormat, ticks + 
237000);
+                       assertFormattedEquals(baseFormat, cachedFormat, ticks + 
1415000);
                }
        }
 #endif
@@ -272,9 +263,8 @@ public:
        void test6()
        {
                LogString numb;
-               Pool p;
                AbsoluteTimeDateFormat formatter;
-               formatter.numberFormat(numb, 87, p);
+               formatter.numberFormat(numb, 87);
                LOGUNIT_ASSERT_EQUAL((LogString) LOG4CXX_STR("87"), numb);
        }
 
@@ -289,15 +279,13 @@ public:
                CachedDateFormat cachedFormat(baseFormat, 1000000);
                apr_time_t jul4 = MICROSECONDS_PER_DAY * 12603;
 
-               Pool p;
-
                LogString actual;
-               cachedFormat.format(actual, jul4, p);
+               cachedFormat.format(actual, jul4);
                LOGUNIT_ASSERT_EQUAL((LogString) LOG4CXX_STR("2004-07-04 
00:00:00,000"), actual);
 
                
cachedFormat.setTimeZone(TimeZone::getTimeZone(LOG4CXX_STR("GMT-6")));
                actual.erase(actual.begin(), actual.end());
-               cachedFormat.format(actual, jul4, p);
+               cachedFormat.format(actual, jul4);
 
                LOGUNIT_ASSERT_EQUAL((LogString) LOG4CXX_STR("2004-07-03 
18:00:00,000"), actual);
        }
@@ -331,10 +319,8 @@ public:
                const apr_status_t statOK = 0;
                LOGUNIT_ASSERT_EQUAL(statOK, stat);
 
-               Pool p;
-
                LogString s;
-               cachedFormat->format(s, dec12, p);
+               cachedFormat->format(s, dec12);
 
                LOGUNIT_ASSERT_EQUAL(
                        (LogString) LOG4CXX_STR("2004-December-12 20:00:37,23 
+0100"), s);
@@ -352,7 +338,7 @@ public:
                LOGUNIT_ASSERT_EQUAL(statOK, stat);
 
                s.erase(s.begin(), s.end());
-               cachedFormat->format(s, jan1, p);
+               cachedFormat->format(s, jan1);
 
                LOGUNIT_ASSERT_EQUAL(
                        (LogString) LOG4CXX_STR("2005-January-01 00:00:13,905 
+0100"), s);
@@ -390,10 +376,8 @@ public:
                const apr_status_t statOK = 0;
                LOGUNIT_ASSERT_EQUAL(statOK, stat);
 
-               Pool p;
-
                LogString s;
-               cachedFormat->format(s, oct5, p);
+               cachedFormat->format(s, oct5);
 
                LOGUNIT_ASSERT_EQUAL(
                        (LogString) LOG4CXX_STR("October 023 Tuesday"), s);
@@ -409,14 +393,14 @@ public:
                LOGUNIT_ASSERT_EQUAL(statOK, stat);
 
                s.erase(s.begin(), s.end());
-               cachedFormat->format(s, nov1, p);
+               cachedFormat->format(s, nov1);
 
                LOGUNIT_ASSERT_EQUAL(
                        (LogString) LOG4CXX_STR("November 023 Monday"), s);
 
                nov1 += 961000;
                s.erase(s.begin(), s.end());
-               cachedFormat->format(s, nov1, p);
+               cachedFormat->format(s, nov1);
 
                LOGUNIT_ASSERT_EQUAL(
                        (LogString) LOG4CXX_STR("November 984 Monday"), s);
@@ -442,10 +426,8 @@ public:
                apr_time_t ticks = MICROSECONDS_PER_DAY * 11142L;
                apr_time_t jul2 = ticks + 120000;
 
-               Pool p;
-
                LogString s;
-               gmtFormat->format(s, jul2, p);
+               gmtFormat->format(s, jul2);
 
                LOGUNIT_ASSERT_EQUAL(
                        (LogString) LOG4CXX_STR("00,1200"), s);
@@ -453,7 +435,7 @@ public:
                jul2 = ticks + 87000;
 
                s.erase(s.begin(), s.end());
-               gmtFormat->format(s, jul2, p);
+               gmtFormat->format(s, jul2);
 
                LOGUNIT_ASSERT_EQUAL(
                        (LogString) LOG4CXX_STR("00,870"), s);
@@ -466,11 +448,10 @@ public:
        {
                DateFormatPtr df    = DateFormatPtr(new 
SimpleDateFormat(LOG4CXX_STR("yyyy-MM-dd HH:mm:ss,SSS")));
                apr_time_t    ticks = 11142L * MICROSECONDS_PER_DAY;
-               Pool p;
                LogString formatted;
 
-               df->format(formatted, ticks, p);
-               int msStart = CachedDateFormat::findMillisecondStart(ticks, 
formatted, df, p);
+               df->format(formatted, ticks);
+               int msStart = CachedDateFormat::findMillisecondStart(ticks, 
formatted, df);
                LOGUNIT_ASSERT_EQUAL(20, msStart);
 
                // Test for for milliseconds overlapping with the magic ones as 
per LOGCXX-420.
@@ -487,16 +468,16 @@ public:
                LOGUNIT_ASSERT_EQUAL(0, apr_time_exp_gmt_get(&ticks, &c));
 
                formatted.clear();
-               df->format(formatted, ticks, p);
-               msStart = CachedDateFormat::findMillisecondStart(ticks, 
formatted, df, p);
+               df->format(formatted, ticks);
+               msStart = CachedDateFormat::findMillisecondStart(ticks, 
formatted, df);
                LOGUNIT_ASSERT_EQUAL(20, msStart);
 
                c.tm_usec = 609000;
                LOGUNIT_ASSERT_EQUAL(0, apr_time_exp_gmt_get(&ticks, &c));
 
                formatted.clear();
-               df->format(formatted, ticks, p);
-               msStart = CachedDateFormat::findMillisecondStart(ticks, 
formatted, df, p);
+               df->format(formatted, ticks);
+               msStart = CachedDateFormat::findMillisecondStart(ticks, 
formatted, df);
                LOGUNIT_ASSERT_EQUAL(20, msStart);
        }
 
@@ -508,13 +489,11 @@ public:
                DateFormatPtr df = DateFormatPtr(new 
SimpleDateFormat(LOG4CXX_STR("yyyy-MM-dd")));
                apr_time_t ticks = 11142L * MICROSECONDS_PER_DAY;
 
-               Pool p;
-
                LogString formatted;
-               df->format(formatted, ticks, p);
+               df->format(formatted, ticks);
 
                int millisecondStart = 
CachedDateFormat::findMillisecondStart(ticks,
-                               formatted, df, p);
+                               formatted, df);
                LOGUNIT_ASSERT_EQUAL((int) CachedDateFormat::NO_MILLISECONDS, 
millisecondStart);
        }
 
@@ -526,12 +505,11 @@ public:
                DateFormatPtr df = DateFormatPtr(new 
SimpleDateFormat(LOG4CXX_STR("HH:mm:ss,SSS")));
                apr_time_t ticks = 11142L * MICROSECONDS_PER_DAY;
 
-               Pool p;
                LogString formatted;
-               df->format(formatted, ticks, p);
+               df->format(formatted, ticks);
 
                int millisecondStart = 
CachedDateFormat::findMillisecondStart(ticks,
-                               formatted, df, p);
+                               formatted, df);
                LOGUNIT_ASSERT_EQUAL(9, millisecondStart);
        }
 
@@ -543,12 +521,11 @@ public:
                DateFormatPtr df = DateFormatPtr(new 
SimpleDateFormat(LOG4CXX_STR("HH:mm:ss,S")));
                apr_time_t ticks = 11142L * MICROSECONDS_PER_DAY;
 
-               Pool p;
                LogString formatted;
-               df->format(formatted, ticks, p);
+               df->format(formatted, ticks);
 
                int millisecondStart = 
CachedDateFormat::findMillisecondStart(ticks,
-                               formatted, df, p);
+                               formatted, df);
                LOGUNIT_ASSERT_EQUAL((int) 
CachedDateFormat::UNRECOGNIZED_MILLISECONDS, millisecondStart);
        }
 
@@ -560,12 +537,11 @@ public:
                DateFormatPtr df = DateFormatPtr(new 
SimpleDateFormat(LOG4CXX_STR("HH:mm:ss,SS")));
                apr_time_t ticks = 11142L * MICROSECONDS_PER_DAY;
 
-               Pool p;
                LogString formatted;
-               df->format(formatted, ticks, p);
+               df->format(formatted, ticks);
 
                int millisecondStart =
-                       CachedDateFormat::findMillisecondStart(ticks, 
formatted, df, p);
+                       CachedDateFormat::findMillisecondStart(ticks, 
formatted, df);
                LOGUNIT_ASSERT_EQUAL((int) 
CachedDateFormat::UNRECOGNIZED_MILLISECONDS, millisecondStart);
        }
 
@@ -580,22 +556,21 @@ public:
                simpleFormat->setTimeZone(TimeZone::getGMT());
                DateFormatPtr cachedFormat = DateFormatPtr(new 
CachedDateFormat(simpleFormat, 1000000));
 
-               Pool p;
                LogString s;
-               cachedFormat->format(s, jul2, p);
+               cachedFormat->format(s, jul2);
 
                LOGUNIT_ASSERT_EQUAL((LogString) LOG4CXX_STR("00:00:00,000 
00:00:00,000"), s);
                jul2 += 120000;
 
                s.erase(s.begin(), s.end());
-               simpleFormat->format(s, jul2, p);
+               simpleFormat->format(s, jul2);
                LOGUNIT_ASSERT_EQUAL((LogString) LOG4CXX_STR("00:00:00,120 
00:00:00,120"), s);
 
                s.erase(s.begin(), s.end());
-               int msStart = CachedDateFormat::findMillisecondStart(jul2, s, 
simpleFormat, p);
+               int msStart = CachedDateFormat::findMillisecondStart(jul2, s, 
simpleFormat);
                LOGUNIT_ASSERT_EQUAL((int) 
CachedDateFormat::UNRECOGNIZED_MILLISECONDS, msStart);
 
-               cachedFormat->format(s, jul2, p);
+               cachedFormat->format(s, jul2);
                LOGUNIT_ASSERT_EQUAL((LogString) LOG4CXX_STR("00:00:00,120 
00:00:00,120"), s) ;
 
                int maxValid = 
CachedDateFormat::getMaximumCacheValidity(badPattern);
@@ -604,14 +579,14 @@ public:
                // Test overlapping millis with a magic string from 
CachedDateFormat for LOGCXX-420.
                s.clear();
                jul2 += 286000;
-               cachedFormat->format(s, jul2, p);
-               msStart = CachedDateFormat::findMillisecondStart(jul2, s, 
simpleFormat, p);
+               cachedFormat->format(s, jul2);
+               msStart = CachedDateFormat::findMillisecondStart(jul2, s, 
simpleFormat);
                LOGUNIT_ASSERT_EQUAL((int) 
CachedDateFormat::UNRECOGNIZED_MILLISECONDS, msStart);
 
                s.clear();
                jul2 += 203000;
-               cachedFormat->format(s, jul2, p);
-               msStart = CachedDateFormat::findMillisecondStart(jul2, s, 
simpleFormat, p);
+               cachedFormat->format(s, jul2);
+               msStart = CachedDateFormat::findMillisecondStart(jul2, s, 
simpleFormat);
                LOGUNIT_ASSERT_EQUAL((int) 
CachedDateFormat::UNRECOGNIZED_MILLISECONDS, msStart);
        }
 
@@ -677,22 +652,21 @@ public:
                CachedDateFormat isoFormat(baseFormatter, 1000000);
                isoFormat.setTimeZone(TimeZone::getGMT());
 
-               Pool p;
                LogString formatted;
 
-               isoFormat.format(formatted, 654000, p);
+               isoFormat.format(formatted, 654000);
                LOGUNIT_ASSERT_EQUAL(LOG4CXX_STR("1970-01-01 00:00:00,654"), 
formatted);
 
                formatted.clear();
-               isoFormat.format(formatted, 999000, p);
+               isoFormat.format(formatted, 999000);
                LOGUNIT_ASSERT_EQUAL(LOG4CXX_STR("1970-01-01 00:00:00,999"), 
formatted);
 
                formatted.clear();
-               isoFormat.format(formatted, 1654010, p);
+               isoFormat.format(formatted, 1654010);
                LOGUNIT_ASSERT_EQUAL(LOG4CXX_STR("1970-01-01 00:00:01,654"), 
formatted);
 
                formatted.clear();
-               isoFormat.format(formatted, 1999010, p);
+               isoFormat.format(formatted, 1999010);
                LOGUNIT_ASSERT_EQUAL(LOG4CXX_STR("1970-01-01 00:00:01,999"), 
formatted);
        }
 
diff --git a/src/test/cpp/helpers/datetimedateformattestcase.cpp 
b/src/test/cpp/helpers/datetimedateformattestcase.cpp
index e771404e..4c66d351 100644
--- a/src/test/cpp/helpers/datetimedateformattestcase.cpp
+++ b/src/test/cpp/helpers/datetimedateformattestcase.cpp
@@ -92,8 +92,7 @@ private:
                DateTimeDateFormat formatter(locale);
                formatter.setTimeZone(timeZone);
                LogString actual;
-               Pool p;
-               formatter.format(actual, date, p);
+               formatter.format(actual, date);
                LOGUNIT_ASSERT_EQUAL( expected, actual );
        }
 public:
@@ -205,9 +204,8 @@ public:
                if (localeChange.isEffective())
                {
                        LogString formatted;
-                       Pool p;
                        SimpleDateFormat formatter(LOG4CXX_STR("MMM"));
-                       formatter.format(formatted, avr11, p);
+                       formatter.format(formatted, avr11);
 
                        std::locale localeFR(LOCALE_FR);
                        struct tm avr11tm = { 0, 0, 0, 11, 03, 104 };
@@ -226,10 +224,9 @@ public:
                if (localeChange.isEffective())
                {
                        LogString formatted;
-                       Pool p;
                        SimpleDateFormat formatter(LOG4CXX_STR("MMM"));
                        formatter.setTimeZone(TimeZone::getGMT());
-                       formatter.format(formatted, apr11, p);
+                       formatter.format(formatted, apr11);
 
                        std::locale localeUS(LOCALE_US);
                        struct tm apr11tm = { 0, 0, 0, 11, 03, 104 };
diff --git a/src/test/cpp/helpers/iso8601dateformattestcase.cpp 
b/src/test/cpp/helpers/iso8601dateformattestcase.cpp
index 13e63a65..11e8ec3a 100644
--- a/src/test/cpp/helpers/iso8601dateformattestcase.cpp
+++ b/src/test/cpp/helpers/iso8601dateformattestcase.cpp
@@ -62,8 +62,7 @@ LOGUNIT_CLASS(ISO8601DateFormatTestCase)
                ISO8601DateFormat formatter;
                formatter.setTimeZone(timeZone);
                LogString actual;
-               Pool p;
-               formatter.format(actual, date, p);
+               formatter.format(actual, date);
                LOGUNIT_ASSERT_EQUAL(expected, actual);
        }
 
@@ -157,8 +156,7 @@ public:
        {
                LogString number;
                ISO8601DateFormat formatter;
-               Pool p;
-               formatter.numberFormat(number, 87, p);
+               formatter.numberFormat(number, 87);
                LOGUNIT_ASSERT_EQUAL((LogString) LOG4CXX_STR("87"), number);
        }
 
diff --git a/src/test/cpp/helpers/relativetimedateformattestcase.cpp 
b/src/test/cpp/helpers/relativetimedateformattestcase.cpp
index a28ebcec..a23cd8b5 100644
--- a/src/test/cpp/helpers/relativetimedateformattestcase.cpp
+++ b/src/test/cpp/helpers/relativetimedateformattestcase.cpp
@@ -56,11 +56,9 @@ public:
 
                RelativeTimeDateFormat formatter;
 
-               Pool p;
-
                LogString actual;
 
-               formatter.format(actual, jan2, p);
+               formatter.format(actual, jan2);
 
                log4cxx_time_t elapsed = 
log4cxx::helpers::StringHelper::toInt64(actual);
 
@@ -76,9 +74,8 @@ public:
        void test2()
        {
                LogString numb;
-               Pool p;
                RelativeTimeDateFormat formatter;
-               formatter.numberFormat(numb, 87, p);
+               formatter.numberFormat(numb, 87);
                LOGUNIT_ASSERT_EQUAL((LogString) LOG4CXX_STR("87"), numb);
        }
 
diff --git a/src/test/cpp/jsonlayouttest.cpp b/src/test/cpp/jsonlayouttest.cpp
index eeaafc4f..0cb9d0d0 100644
--- a/src/test/cpp/jsonlayouttest.cpp
+++ b/src/test/cpp/jsonlayouttest.cpp
@@ -375,7 +375,7 @@ public:
 
                LogString timestamp;
                helpers::ISO8601DateFormat dateFormat;
-               dateFormat.format(timestamp, event1->getTimeStamp(), p);
+               dateFormat.format(timestamp, event1->getTimeStamp());
 
                NDC::push("one");
                NDC::push("two");
@@ -423,7 +423,7 @@ public:
 
                LogString timestamp;
                helpers::ISO8601DateFormat dateFormat;
-               dateFormat.format(timestamp, event1->getTimeStamp(), p);
+               dateFormat.format(timestamp, event1->getTimeStamp());
 
                NDC::push("one");
                NDC::push("two");
diff --git a/src/test/cpp/pattern/colorstartpatternconvertertest.cpp 
b/src/test/cpp/pattern/colorstartpatternconvertertest.cpp
index e2f85e52..8b30c564 100644
--- a/src/test/cpp/pattern/colorstartpatternconvertertest.cpp
+++ b/src/test/cpp/pattern/colorstartpatternconvertertest.cpp
@@ -69,16 +69,15 @@ public:
        {
                ColorStartPatternConverter colorPatternConverter;
                LogString outputString;
-               Pool p;
-
-               LoggingEventPtr event= LoggingEventPtr(new LoggingEvent(
-                                                                               
                   LOG4CXX_STR("org.foobar"),
-                                                                               
                   Level::getInfo(),
-                                                                               
                   LOG4CXX_STR("msg 1"),
-                                                                               
                   LOG4CXX_LOCATION));
+               auto event = std::make_shared<LoggingEvent>
+                       ( LOG4CXX_STR("org.foobar")
+                       , Level::getInfo()
+                       , LOG4CXX_STR("msg 1")
+                       , LOG4CXX_LOCATION
+                       );
 
                colorPatternConverter.setInfoColor(LOG4CXX_STR("fg(red)"));
-               colorPatternConverter.format(event, outputString, p);
+               colorPatternConverter.format(event, outputString);
 
                LOGUNIT_ASSERT_EQUAL(LOG4CXX_STR("\x1b[;31m"), outputString);
        }
@@ -87,16 +86,15 @@ public:
        {
                ColorStartPatternConverter colorPatternConverter;
                LogString outputString;
-               Pool p;
-
-               LoggingEventPtr event= LoggingEventPtr(new LoggingEvent(
-                                                                               
                   LOG4CXX_STR("org.foobar"),
-                                                                               
                   Level::getInfo(),
-                                                                               
                   LOG4CXX_STR("msg 1"),
-                                                                               
                   LOG4CXX_LOCATION));
+               auto event = std::make_shared<LoggingEvent>
+                       ( LOG4CXX_STR("org.foobar")
+                       , Level::getInfo()
+                       , LOG4CXX_STR("msg 1")
+                       , LOG4CXX_LOCATION
+                       );
 
                colorPatternConverter.setInfoColor(LOG4CXX_STR("bg(red)"));
-               colorPatternConverter.format(event, outputString, p);
+               colorPatternConverter.format(event, outputString);
 
                LOGUNIT_ASSERT_EQUAL(LOG4CXX_STR("\x1b[;41m"), outputString);
        }
@@ -105,16 +103,15 @@ public:
        {
                ColorStartPatternConverter colorPatternConverter;
                LogString outputString;
-               Pool p;
-
-               LoggingEventPtr event= LoggingEventPtr(new LoggingEvent(
-                                                                               
                   LOG4CXX_STR("org.foobar"),
-                                                                               
                   Level::getInfo(),
-                                                                               
                   LOG4CXX_STR("msg 1"),
-                                                                               
                   LOG4CXX_LOCATION));
+               auto event = std::make_shared<LoggingEvent>
+                       ( LOG4CXX_STR("org.foobar")
+                       , Level::getInfo()
+                       , LOG4CXX_STR("msg 1")
+                       , LOG4CXX_LOCATION
+                       );
 
                
colorPatternConverter.setInfoColor(LOG4CXX_STR("fg(green)|bg(red)"));
-               colorPatternConverter.format(event, outputString, p);
+               colorPatternConverter.format(event, outputString);
 
                LOGUNIT_ASSERT_EQUAL(LOG4CXX_STR("\x1b[;32;41m"), outputString);
        }
@@ -122,16 +119,15 @@ public:
        void testParseUnbalancedParens1(){
                ColorStartPatternConverter colorPatternConverter;
                LogString outputString;
-               Pool p;
-
-               LoggingEventPtr event= LoggingEventPtr(new LoggingEvent(
-                                                                               
                   LOG4CXX_STR("org.foobar"),
-                                                                               
                   Level::getInfo(),
-                                                                               
                   LOG4CXX_STR("msg 1"),
-                                                                               
                   LOG4CXX_LOCATION));
+               auto event = std::make_shared<LoggingEvent>
+                       ( LOG4CXX_STR("org.foobar")
+                       , Level::getInfo()
+                       , LOG4CXX_STR("msg 1")
+                       , LOG4CXX_LOCATION
+                       );
 
                colorPatternConverter.setInfoColor(LOG4CXX_STR("fg(green))"));
-               colorPatternConverter.format(event, outputString, p);
+               colorPatternConverter.format(event, outputString);
 
                LOGUNIT_ASSERT_EQUAL(LOG4CXX_STR("\x1b[m"), outputString);
        }
@@ -139,16 +135,15 @@ public:
        void testParseUnbalancedParens2(){
                ColorStartPatternConverter colorPatternConverter;
                LogString outputString;
-               Pool p;
-
-               LoggingEventPtr event= LoggingEventPtr(new LoggingEvent(
-                                                                               
                   LOG4CXX_STR("org.foobar"),
-                                                                               
                   Level::getInfo(),
-                                                                               
                   LOG4CXX_STR("msg 1"),
-                                                                               
                   LOG4CXX_LOCATION));
+               auto event = std::make_shared<LoggingEvent>
+                       ( LOG4CXX_STR("org.foobar")
+                       , Level::getInfo()
+                       , LOG4CXX_STR("msg 1")
+                       , LOG4CXX_LOCATION
+                       );
 
                colorPatternConverter.setInfoColor(LOG4CXX_STR("fg(green"));
-               colorPatternConverter.format(event, outputString, p);
+               colorPatternConverter.format(event, outputString);
 
                LOGUNIT_ASSERT_EQUAL(LOG4CXX_STR("\x1b[m"), outputString);
        }
@@ -156,16 +151,15 @@ public:
        void testParseUnbalancedParens3(){
                ColorStartPatternConverter colorPatternConverter;
                LogString outputString;
-               Pool p;
-
-               LoggingEventPtr event= LoggingEventPtr(new LoggingEvent(
-                                                                               
                   LOG4CXX_STR("org.foobar"),
-                                                                               
                   Level::getInfo(),
-                                                                               
                   LOG4CXX_STR("msg 1"),
-                                                                               
                   LOG4CXX_LOCATION));
+               auto event = std::make_shared<LoggingEvent>
+                       ( LOG4CXX_STR("org.foobar")
+                       , Level::getInfo()
+                       , LOG4CXX_STR("msg 1")
+                       , LOG4CXX_LOCATION
+                       );
 
                
colorPatternConverter.setInfoColor(LOG4CXX_STR("fg(green|bg(red)"));
-               colorPatternConverter.format(event, outputString, p);
+               colorPatternConverter.format(event, outputString);
 
                // The background should be parsed correctly, but since the 
foreground
                // is bad it will not work
@@ -175,16 +169,15 @@ public:
        void testANSICode(){
                ColorStartPatternConverter colorPatternConverter;
                LogString outputString;
-               Pool p;
-
-               LoggingEventPtr event= LoggingEventPtr(new LoggingEvent(
-                                                                               
                   LOG4CXX_STR("org.foobar"),
-                                                                               
                   Level::getInfo(),
-                                                                               
                   LOG4CXX_STR("msg 1"),
-                                                                               
                   LOG4CXX_LOCATION));
+               auto event = std::make_shared<LoggingEvent>
+                       ( LOG4CXX_STR("org.foobar")
+                       , Level::getInfo()
+                       , LOG4CXX_STR("msg 1")
+                       , LOG4CXX_LOCATION
+                       );
 
                colorPatternConverter.setInfoColor(LOG4CXX_STR("\\x1b[34;40m"));
-               colorPatternConverter.format(event, outputString, p);
+               colorPatternConverter.format(event, outputString);
 
                LOGUNIT_ASSERT_EQUAL(LOG4CXX_STR("\x1b[34;40m"), outputString);
        }
@@ -192,16 +185,15 @@ public:
        void testInvalidANSICode(){
                ColorStartPatternConverter colorPatternConverter;
                LogString outputString;
-               Pool p;
-
-               LoggingEventPtr event= LoggingEventPtr(new LoggingEvent(
-                                                                               
                   LOG4CXX_STR("org.foobar"),
-                                                                               
                   Level::getInfo(),
-                                                                               
                   LOG4CXX_STR("msg 1"),
-                                                                               
                   LOG4CXX_LOCATION));
+               auto event = std::make_shared<LoggingEvent>
+                       ( LOG4CXX_STR("org.foobar")
+                       , Level::getInfo()
+                       , LOG4CXX_STR("msg 1")
+                       , LOG4CXX_LOCATION
+                       );
 
                colorPatternConverter.setInfoColor(LOG4CXX_STR("\\x1b"));
-               colorPatternConverter.format(event, outputString, p);
+               colorPatternConverter.format(event, outputString);
 
                LOGUNIT_ASSERT_EQUAL(LOG4CXX_STR(""), outputString);
        }
@@ -209,16 +201,15 @@ public:
        void testUnterminatedANSICode(){
                ColorStartPatternConverter colorPatternConverter;
                LogString outputString;
-               Pool p;
-
-               LoggingEventPtr event= LoggingEventPtr(new LoggingEvent(
-                                                                               
                   LOG4CXX_STR("org.foobar"),
-                                                                               
                   Level::getInfo(),
-                                                                               
                   LOG4CXX_STR("msg 1"),
-                                                                               
                   LOG4CXX_LOCATION));
+               auto event = std::make_shared<LoggingEvent>
+                       ( LOG4CXX_STR("org.foobar")
+                       , Level::getInfo()
+                       , LOG4CXX_STR("msg 1")
+                       , LOG4CXX_LOCATION
+                       );
 
                colorPatternConverter.setInfoColor(LOG4CXX_STR("\\x1b[31"));
-               colorPatternConverter.format(event, outputString, p);
+               colorPatternConverter.format(event, outputString);
 
                LOGUNIT_ASSERT_EQUAL(LOG4CXX_STR(""), outputString);
        }
@@ -226,16 +217,15 @@ public:
        void testForegroundBackgroundBlink(){
                ColorStartPatternConverter colorPatternConverter;
                LogString outputString;
-               Pool p;
-
-               LoggingEventPtr event= LoggingEventPtr(new LoggingEvent(
-                                                                               
                   LOG4CXX_STR("org.foobar"),
-                                                                               
                   Level::getInfo(),
-                                                                               
                   LOG4CXX_STR("msg 1"),
-                                                                               
                   LOG4CXX_LOCATION));
+               auto event = std::make_shared<LoggingEvent>
+                       ( LOG4CXX_STR("org.foobar")
+                       , Level::getInfo()
+                       , LOG4CXX_STR("msg 1")
+                       , LOG4CXX_LOCATION
+                       );
 
                
colorPatternConverter.setInfoColor(LOG4CXX_STR("fg(white)|bg(black)|blinking"));
-               colorPatternConverter.format(event, outputString, p);
+               colorPatternConverter.format(event, outputString);
 
                LOGUNIT_ASSERT_EQUAL(LOG4CXX_STR("\x1b[;37;40;5m"), 
outputString);
        }
@@ -243,17 +233,16 @@ public:
        void testClearColor(){
                ColorStartPatternConverter colorPatternConverter;
                LogString outputString;
-               Pool p;
-
-               LoggingEventPtr event= LoggingEventPtr(new LoggingEvent(
-                                                                               
                   LOG4CXX_STR("org.foobar"),
-                                                                               
                   Level::getInfo(),
-                                                                               
                   LOG4CXX_STR("msg 1"),
-                                                                               
                   LOG4CXX_LOCATION));
+               auto event = std::make_shared<LoggingEvent>
+                       ( LOG4CXX_STR("org.foobar")
+                       , Level::getInfo()
+                       , LOG4CXX_STR("msg 1")
+                       , LOG4CXX_LOCATION
+                       );
 
                
colorPatternConverter.setInfoColor(LOG4CXX_STR("fg(white)|bg(black)|blinking"));
                colorPatternConverter.setInfoColor(LOG4CXX_STR(""));
-               colorPatternConverter.format(event, outputString, p);
+               colorPatternConverter.format(event, outputString);
 
                LOGUNIT_ASSERT_EQUAL(LOG4CXX_STR(""), outputString);
        }
diff --git a/src/test/cpp/pattern/num343patternconverter.cpp 
b/src/test/cpp/pattern/num343patternconverter.cpp
index 18d02cab..ad61ba09 100644
--- a/src/test/cpp/pattern/num343patternconverter.cpp
+++ b/src/test/cpp/pattern/num343patternconverter.cpp
@@ -37,11 +37,8 @@ PatternConverterPtr Num343PatternConverter::newInstance(
 }
 
 
-void Num343PatternConverter::format(
-       const spi::LoggingEventPtr&,
-       LogString& sbuf,
-       Pool&) const
+void Num343PatternConverter::format( LOG4CXX_FORMAT_EVENT_FORMAL_PARAMETERS ) 
const
 {
-       sbuf.append(LOG4CXX_STR("343"));
+       toAppendTo.append(LOG4CXX_STR("343"));
 }
 
diff --git a/src/test/cpp/pattern/num343patternconverter.h 
b/src/test/cpp/pattern/num343patternconverter.h
index ae3ee7df..f4821b04 100644
--- a/src/test/cpp/pattern/num343patternconverter.h
+++ b/src/test/cpp/pattern/num343patternconverter.h
@@ -32,10 +32,9 @@ class Num343PatternConverter : public 
LoggingEventPatternConverter
                        const std::vector<LogString>& options);
 
        protected:
-               void format(
-                       const log4cxx::spi::LoggingEventPtr& event,
-                       LogString& toAppendTo,
-                       log4cxx::helpers::Pool& pool) const override;
+               using LoggingEventPatternConverter::format;
+
+               void format( LOG4CXX_FORMAT_EVENT_FORMAL_PARAMETERS ) const 
override;
 };
 }
 }
diff --git a/src/test/cpp/pattern/patternparsertestcase.cpp 
b/src/test/cpp/pattern/patternparsertestcase.cpp
index 2c030198..c0c46fde 100644
--- a/src/test/cpp/pattern/patternparsertestcase.cpp
+++ b/src/test/cpp/pattern/patternparsertestcase.cpp
@@ -171,13 +171,12 @@ public:
                const LogString & expected)
        {
                auto converters = PatternParser::parse(pattern, patternMap);
-               Pool p;
                LogString actual;
 
                for (auto item : converters)
                {
                        auto fieldStart = static_cast<int>(actual.length());
-                       item->format(event, actual, p);
+                       item->format(event, actual);
                        item->getFormattingInfo().format(fieldStart, actual);
                }
 
@@ -230,10 +229,9 @@ public:
 
        void testBasic2()
        {
-               Pool pool;
                RelativeTimeDateFormat relativeFormat;
                LogString expected;
-               relativeFormat.format(expected, event->getTimeStamp(), pool);
+               relativeFormat.format(expected, event->getTimeStamp());
 
                expected.append(LOG4CXX_STR(" INFO  ["));
                expected.append(event->getThreadName());
@@ -247,15 +245,13 @@ public:
 
        void testMultiOption()
        {
-               Pool pool;
-
                SimpleDateFormat dateFormat(LOG4CXX_STR("HH:mm:ss"));
                LogString localTime;
-               dateFormat.format(localTime, event->getTimeStamp(), pool);
+               dateFormat.format(localTime, event->getTimeStamp());
 
                dateFormat.setTimeZone(TimeZone::getGMT());
                LogString utcTime;
-               dateFormat.format(utcTime, event->getTimeStamp(), pool);
+               dateFormat.format(utcTime, event->getTimeStamp());
 
                LogString expected(utcTime);
                expected.append(1, LOG4CXX_STR(' '));
@@ -277,10 +273,9 @@ public:
 
        void testThreadUsername()
        {
-               Pool pool;
                RelativeTimeDateFormat relativeFormat;
                LogString expected;
-               relativeFormat.format(expected, event->getTimeStamp(), pool);
+               relativeFormat.format(expected, event->getTimeStamp());
 
                expected.append(LOG4CXX_STR(" INFO  ["));
                expected.append(event->getThreadUserName());
diff --git a/src/test/cpp/rolling/filenamepatterntestcase.cpp 
b/src/test/cpp/rolling/filenamepatterntestcase.cpp
index 01a834fa..cceda124 100644
--- a/src/test/cpp/rolling/filenamepatterntestcase.cpp
+++ b/src/test/cpp/rolling/filenamepatterntestcase.cpp
@@ -71,12 +71,11 @@ public:
                rules.insert(PatternMap::value_type(LOG4CXX_STR("i"), 
(PatternConstructor) IntegerPatternConverter::newInstance));
                auto converters = PatternParser::parse(pattern, rules);
                LogString result;
-               Pool pool;
 
                for (auto item :  converters)
                {
                        LogString::size_type i = result.length();
-                       item->format(obj, result, pool);
+                       item->format(obj, result);
                        item->getFormattingInfo().format((int)i, result);
                }
 
diff --git a/src/test/cpp/rolling/multiprocessrollingtest.cpp 
b/src/test/cpp/rolling/multiprocessrollingtest.cpp
index be5f3841..98e754d8 100644
--- a/src/test/cpp/rolling/multiprocessrollingtest.cpp
+++ b/src/test/cpp/rolling/multiprocessrollingtest.cpp
@@ -137,8 +137,7 @@ public:
 
                // Count rolled files
                LOG4CXX_DECODE_CHAR(expectedPrefixLS, expectedPrefix);
-               helpers::Pool p;
-               
helpers::StrftimeDateFormat(LOG4CXX_STR("%Y-%m-%d")).format(expectedPrefixLS, 
helpers::Date::currentTime(), p);
+               
helpers::StrftimeDateFormat(LOG4CXX_STR("%Y-%m-%d")).format(expectedPrefixLS, 
helpers::Date::currentTime());
                LOG4CXX_ENCODE_CHAR(rolledPrefix, expectedPrefixLS);
                int fileCount = 0;
                for (auto const& dir_entry : 
std::filesystem::directory_iterator{"output/rolling"})
diff --git a/src/test/cpp/rolling/timebasedrollingtest.cpp 
b/src/test/cpp/rolling/timebasedrollingtest.cpp
index bd5a3bea..4c78d6aa 100644
--- a/src/test/cpp/rolling/timebasedrollingtest.cpp
+++ b/src/test/cpp/rolling/timebasedrollingtest.cpp
@@ -134,7 +134,7 @@ private:
                for (size_t i = 0; i < N; ++i)
                {
                        fnames[i].assign(LogString(LOG4CXX_STR("" 
DIR_PRE_OUTPUT)) + prefix);
-                       sdf.format(fnames[i], now, pool);
+                       sdf.format(fnames[i], now);
                        fnames[i].append(ext);
 
                        now += APR_USEC_PER_SEC;


Reply via email to