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 d1db1e35 Non-char logchar compilation errors (#183)
d1db1e35 is described below

commit d1db1e3524198343b9692964e5d6def5ebbd2110
Author: Stephen Webb <[email protected]>
AuthorDate: Mon Jan 23 10:48:55 2023 +1100

    Non-char logchar compilation errors (#183)
    
    * Ensure CI catches logchar related compilation errors
    
    * LOG4CXX=unichar not checked in CI due to lack of support by VS 2022
---
 .github/workflows/log4cxx-windows.yml              |  2 +-
 src/main/cpp/colorstartpatternconverter.cpp        | 12 ++---
 src/main/cpp/defaultconfigurator.cpp               | 19 +++++---
 src/main/cpp/domconfigurator.cpp                   |  5 +--
 src/main/cpp/exception.cpp                         | 10 +++--
 src/main/cpp/fmtlayout.cpp                         | 51 ++++++++++++++--------
 src/main/cpp/locationinfofilter.cpp                | 13 +++---
 src/main/cpp/loggingevent.cpp                      |  2 +-
 src/main/cpp/loglog.cpp                            |  2 +-
 src/main/cpp/patternlayout.cpp                     |  2 +-
 src/main/cpp/propertyconfigurator.cpp              |  5 ++-
 src/main/cpp/rollingfileappender.cpp               | 28 +++++-------
 src/main/cpp/threadutility.cpp                     |  1 +
 src/test/cpp/filter/locationinfofiltertest.cpp     |  2 +-
 src/test/cpp/fmttest.cpp                           |  8 ++--
 src/test/cpp/helpers/localechanger.cpp             | 12 +++--
 .../cpp/pattern/colorstartpatternconvertertest.cpp | 46 +++++++++----------
 src/test/cpp/pattern/patternparsertestcase.cpp     |  1 +
 18 files changed, 125 insertions(+), 96 deletions(-)

diff --git a/.github/workflows/log4cxx-windows.yml 
b/.github/workflows/log4cxx-windows.yml
index 012c41c0..e8b73a0b 100644
--- a/.github/workflows/log4cxx-windows.yml
+++ b/.github/workflows/log4cxx-windows.yml
@@ -74,7 +74,7 @@ jobs:
         cd main
         mkdir build
         cd build
-        cmake -DLOG4CXX_TEST_PROGRAM_PATH=C:\msys64\usr\bin 
"-DCMAKE_TOOLCHAIN_FILE=$THISDIR/vcpkg/scripts/buildsystems/vcpkg.cmake" ..
+        cmake -DLOG4CXX_TEST_PROGRAM_PATH=C:\msys64\usr\bin 
-DLOG4CXX_CHAR=wchar_t  
"-DCMAKE_TOOLCHAIN_FILE=$THISDIR/vcpkg/scripts/buildsystems/vcpkg.cmake" ..
         cmake --build .
 
     - name: run unit tests
diff --git a/src/main/cpp/colorstartpatternconverter.cpp 
b/src/main/cpp/colorstartpatternconverter.cpp
index 72eb9f32..1193f6fd 100644
--- a/src/main/cpp/colorstartpatternconverter.cpp
+++ b/src/main/cpp/colorstartpatternconverter.cpp
@@ -122,10 +122,10 @@ static LogString convertSingleSequence(const LogString& 
sequence, Pool& pool){
                return LOG4CXX_STR("");
        }
 
-       if(StringHelper::startsWith(sequence, "fg(")){
+       if(StringHelper::startsWith(sequence, LOG4CXX_STR("fg("))){
                // Parse foreground
                return colorToANSISequence(strInParens, true, pool);
-       }else if(StringHelper::startsWith(sequence, "bg(")){
+       }else if(StringHelper::startsWith(sequence, LOG4CXX_STR("bg("))){
                return colorToANSISequence(strInParens, false, pool);
        }else{
                return graphicsModeToANSISequence(sequence, pool);
@@ -234,7 +234,7 @@ void ColorStartPatternConverter::parseColor(const 
LogString& color, LogString* r
                return;
        }
 
-       if( StringHelper::startsWith(lower, "\\x1b") ){
+       if( StringHelper::startsWith(lower, LOG4CXX_STR("\\x1b")) ){
                if( color[color.size() - 1] != 'm' ){
                        // In order for this to be a valid ANSI escape sequence,
                        // it must end with an 'm'.  If it does not, reject.
@@ -242,7 +242,7 @@ void ColorStartPatternConverter::parseColor(const 
LogString& color, LogString* r
                }
                // We start with an escape sequence, copy the data over after 
the escape byte
                result->clear();
-               result->append("\x1b");
+               result->append(LOG4CXX_STR("\x1b"));
                for( size_t x = 4; x < color.size(); x++ ){
                        result->push_back(color[x]);
                }
@@ -252,7 +252,7 @@ void ColorStartPatternConverter::parseColor(const 
LogString& color, LogString* r
                // https://gist.github.com/fnky/458719343aabd01cfb17a3a4f7296797
                // https://en.wikipedia.org/wiki/ANSI_escape_code
                result->clear();
-               result->append("\x1b[");
+               result->append(LOG4CXX_STR("\x1b["));
                LogString tmp;
                for( size_t x = 0; x < color.size(); x++ ){
                        if(color[x] == '|' ){
@@ -272,6 +272,6 @@ void ColorStartPatternConverter::parseColor(const 
LogString& color, LogString* r
                        result->push_back(';');
                        result->append(toAppend);
                }
-               result->append("m");
+               result->append(LOG4CXX_STR("m"));
        }
 }
diff --git a/src/main/cpp/defaultconfigurator.cpp 
b/src/main/cpp/defaultconfigurator.cpp
index a8bdddb7..5bb254bf 100644
--- a/src/main/cpp/defaultconfigurator.cpp
+++ b/src/main/cpp/defaultconfigurator.cpp
@@ -61,9 +61,14 @@ void DefaultConfigurator::configure(LoggerRepositoryPtr 
repository)
 
        if (configurationFileName.empty())
        {
-               const char* names[] = { "log4cxx.xml", "log4cxx.properties", 
"log4j.xml", "log4j.properties", 0 };
-
-               for (int i = 0; names[i] != 0; i++)
+               LogString names[4] =
+                       { LOG4CXX_STR("log4cxx.xml")
+                       , LOG4CXX_STR("log4cxx.properties")
+                       , LOG4CXX_STR("log4j.xml")
+                       , LOG4CXX_STR("log4j.properties")
+                       };
+
+               for (int i = 0; i < 4; i++)
                {
                        File candidate(names[i]);
 
@@ -153,9 +158,9 @@ int DefaultConfigurator::getConfigurationWatchDelay()
 }
 
 log4cxx::spi::ConfigurationStatus DefaultConfigurator::tryLoadFile(const 
LogString& filename){
-       if(helpers::StringHelper::endsWith(filename, ".xml")){
+       if(helpers::StringHelper::endsWith(filename, LOG4CXX_STR(".xml"))){
                return log4cxx::xml::DOMConfigurator::configure(filename);
-       }else if(helpers::StringHelper::endsWith(filename, ".properties")){
+       }else if(helpers::StringHelper::endsWith(filename, 
LOG4CXX_STR(".properties"))){
                return log4cxx::PropertyConfigurator::configure(filename);
        }
 
@@ -168,7 +173,7 @@ DefaultConfigurator::configureFromFile(const 
std::vector<LogString>& directories
 
        for( LogString dir : directories ){
                for( LogString fname : filenames ){
-                       LogString canidate_str = dir + "/" + fname;
+                       LogString canidate_str = dir + LOG4CXX_STR("/") + fname;
                        File candidate(canidate_str);
 
                        LogString debugMsg = LOG4CXX_STR("Checking file ");
@@ -180,7 +185,7 @@ DefaultConfigurator::configureFromFile(const 
std::vector<LogString>& directories
                                if( configStatus == 
log4cxx::spi::ConfigurationStatus::Configured ){
                                        return {configStatus, canidate_str};
                                }
-                               LogLog::debug("Unable to load file: trying 
next");
+                               LogLog::debug(LOG4CXX_STR("Unable to load file: 
trying next"));
                        }
                }
        }
diff --git a/src/main/cpp/domconfigurator.cpp b/src/main/cpp/domconfigurator.cpp
index 360b9bfb..f5488fdd 100644
--- a/src/main/cpp/domconfigurator.cpp
+++ b/src/main/cpp/domconfigurator.cpp
@@ -14,7 +14,6 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-
 #include <log4cxx/logstring.h>
 #include <log4cxx/xml/domconfigurator.h>
 #include <log4cxx/appender.h>
@@ -63,7 +62,6 @@ struct DOMConfigurator::DOMConfiguratorPrivate
        spi::LoggerFactoryPtr loggerFactory;
 };
 
-
 #if APR_HAS_THREADS
 namespace log4cxx
 {
@@ -802,7 +800,8 @@ spi::ConfigurationStatus DOMConfigurator::doConfigure(const 
File& filename, spi:
                LogString msg2(LOG4CXX_STR("Could not read configuration file 
["));
                msg2.append(filename.getPath());
                msg2.append(LOG4CXX_STR("]. "));
-               msg2.append(io.what());
+               LOG4CXX_DECODE_CHAR(msg, io.what());
+               msg2.append(msg);
                LogLog::error(msg2);
                return spi::ConfigurationStatus::NotConfigured;
        }
diff --git a/src/main/cpp/exception.cpp b/src/main/cpp/exception.cpp
index 7eeaf005..ba7c0074 100644
--- a/src/main/cpp/exception.cpp
+++ b/src/main/cpp/exception.cpp
@@ -14,7 +14,6 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-
 #include <log4cxx/logstring.h>
 #include <log4cxx/helpers/exception.h>
 #include <string.h>
@@ -175,9 +174,12 @@ LogString IOException::formatMessage(log4cxx_status_t stat)
        LogString s(LOG4CXX_STR("IO Exception : status code = "));
        Pool p;
        StringHelper::toString(stat, p, s);
-       s.append("(");
-       s.append(apr_strerror(stat, err_buff, sizeof(err_buff)));
-       s.append(")");
+       s.append(LOG4CXX_STR("("));
+       apr_strerror(stat, err_buff, sizeof(err_buff));
+       std::string sMsg = err_buff;
+       LOG4CXX_DECODE_CHAR(lsMsg, sMsg);
+       s.append(lsMsg);
+       s.append(LOG4CXX_STR(")"));
        return s;
 }
 
diff --git a/src/main/cpp/fmtlayout.cpp b/src/main/cpp/fmtlayout.cpp
index 20b7cf54..62de068a 100644
--- a/src/main/cpp/fmtlayout.cpp
+++ b/src/main/cpp/fmtlayout.cpp
@@ -20,6 +20,7 @@
 #include <log4cxx/helpers/stringhelper.h>
 #include <log4cxx/helpers/pool.h>
 #include <log4cxx/helpers/optionconverter.h>
+#include <log4cxx/helpers/transcoder.h>
 #include <log4cxx/level.h>
 #include <chrono>
 
@@ -82,17 +83,33 @@ void FMTLayout::format(LogString& output,
        const spi::LoggingEventPtr& event,
        log4cxx::helpers::Pool&) const
 {
-       LogString locationFull = fmt::format("{}({})",
+       auto locationFull = fmt::format("{}({})",
                                                                                
 event->getLocationInformation().getFileName(),
                                                                                
 event->getLocationInformation().getLineNumber());
        LogString ndc;
        event->getNDC(ndc);
-
+#if LOG4CXX_LOGCHAR_IS_WCHAR || LOG4CXX_LOGCHAR_IS_UNICHAR
+       LOG4CXX_ENCODE_CHAR(sNDC, ndc);
+       LOG4CXX_ENCODE_CHAR(sPattern, m_priv->conversionPattern);
+       LOG4CXX_ENCODE_CHAR(sLogger, event->getLoggerName());
+       LOG4CXX_ENCODE_CHAR(sLevel, event->getLevel()->toString());
+       LOG4CXX_ENCODE_CHAR(sMsg, event->getMessage());
+       LOG4CXX_ENCODE_CHAR(sThread, event->getThreadName());
+       LOG4CXX_ENCODE_CHAR(endOfLine, LOG4CXX_EOL);
+#else
+       auto& sNDC = ndc;
+       auto& sPattern = m_priv->conversionPattern;
+       auto& sLogger = event->getLoggerName();
+       auto sLevel = event->getLevel()->toString();
+       auto& sMsg = event->getMessage();
+       auto& sThread = event->getThreadName();
+       auto endOfLine = LOG4CXX_EOL;
+#endif
        fmt::format_to(std::back_inserter(output),
-                                  m_priv->conversionPattern,
+                                  sPattern,
                                   fmt::arg("d", event->getChronoTimeStamp()),
-                                  fmt::arg("c", event->getLoggerName()),
-                                  fmt::arg("logger", event->getLoggerName()),
+                                  fmt::arg("c", sLogger),
+                                  fmt::arg("logger", sLogger),
                                   fmt::arg("f", 
event->getLocationInformation().getShortFileName()),
                                   fmt::arg("shortfilename", 
event->getLocationInformation().getShortFileName()),
                                   fmt::arg("F", 
event->getLocationInformation().getFileName()),
@@ -101,20 +118,20 @@ void FMTLayout::format(LogString& output,
                                   fmt::arg("location", locationFull),
                                   fmt::arg("L", 
event->getLocationInformation().getLineNumber()),
                                   fmt::arg("line", 
event->getLocationInformation().getLineNumber()),
-                                  fmt::arg("m", event->getMessage()),
-                                  fmt::arg("message", event->getMessage()),
+                                  fmt::arg("m", sMsg),
+                                  fmt::arg("message", sMsg),
                                   fmt::arg("M", 
event->getLocationInformation().getMethodName()),
                                   fmt::arg("method", 
event->getLocationInformation().getMethodName()),
-                                  fmt::arg("n", LOG4CXX_EOL),
-                                  fmt::arg("newline", LOG4CXX_EOL),
-                                  fmt::arg("p", event->getLevel()->toString()),
-                                  fmt::arg("level", 
event->getLevel()->toString()),
+                                  fmt::arg("n", endOfLine),
+                                  fmt::arg("newline", endOfLine),
+                                  fmt::arg("p", sLevel),
+                                  fmt::arg("level", sLevel),
                                   fmt::arg("r", event->getTimeStamp()),
-                                  fmt::arg("t", event->getThreadName()),
-                                  fmt::arg("thread", event->getThreadName()),
-                                  fmt::arg("T", event->getThreadUserName()),
-                                  fmt::arg("threadname", 
event->getThreadUserName()),
-                                  fmt::arg("x", ndc),
-                                  fmt::arg("ndc", ndc)
+                                  fmt::arg("t", sThread),
+                                  fmt::arg("thread", sThread),
+                                  fmt::arg("T", sThread),
+                                  fmt::arg("threadname", sThread),
+                                  fmt::arg("x", sNDC),
+                                  fmt::arg("ndc", sNDC)
                                   );
 }
diff --git a/src/main/cpp/locationinfofilter.cpp 
b/src/main/cpp/locationinfofilter.cpp
index db8612fe..7224fcbc 100644
--- a/src/main/cpp/locationinfofilter.cpp
+++ b/src/main/cpp/locationinfofilter.cpp
@@ -22,6 +22,7 @@
 #include <log4cxx/helpers/optionconverter.h>
 #include <log4cxx/private/filter_priv.h>
 #include <log4cxx/helpers/loglog.h>
+#include <log4cxx/helpers/transcoder.h>
 
 using namespace log4cxx;
 using namespace log4cxx::filter;
@@ -40,8 +41,8 @@ struct LocationInfoFilter::LocationInfoFilterPrivate : public 
FilterPrivate
 
        bool    acceptOnMatch;
        bool    mustMatchAll; // true = AND; false = OR
-       int lineNumber;
-       LogString methodName;
+       int     lineNumber;
+       std::string methodName;
 };
 
 IMPLEMENT_LOG4CXX_OBJECT(LocationInfoFilter)
@@ -56,7 +57,7 @@ LocationInfoFilter::~LocationInfoFilter() {}
 void LocationInfoFilter::setOption(  const LogString& option,
        const LogString& value)
 {
-       LogLog::warn(option + ":" + value);
+       LogLog::warn(option + LOG4CXX_STR(":") + value);
        if (StringHelper::equalsIgnoreCase(option, 
LOG4CXX_STR("ACCEPTONMATCH"), LOG4CXX_STR("acceptonmatch")))
        {
                priv->acceptOnMatch = OptionConverter::toBoolean(value, 
priv->acceptOnMatch);
@@ -71,7 +72,8 @@ void LocationInfoFilter::setOption(  const LogString& option,
        }
        else if (StringHelper::equalsIgnoreCase(option, LOG4CXX_STR("METHOD"), 
LOG4CXX_STR("method")))
        {
-               priv->methodName = value;
+               LOG4CXX_ENCODE_CHAR(sName, value);
+               priv->methodName = sName;
        }
 }
 
@@ -134,5 +136,6 @@ void LocationInfoFilter::setLineNumber(int lineNum){
 }
 
 void LocationInfoFilter::setMethodName(const LogString& methodName){
-       priv->methodName = methodName;
+       LOG4CXX_ENCODE_CHAR(sName, methodName);
+       priv->methodName = sName;
 }
diff --git a/src/main/cpp/loggingevent.cpp b/src/main/cpp/loggingevent.cpp
index cc7f7479..aa7d304e 100644
--- a/src/main/cpp/loggingevent.cpp
+++ b/src/main/cpp/loggingevent.cpp
@@ -395,7 +395,7 @@ const LogString& LoggingEvent::getCurrentThreadUserName()
                if (SUCCEEDED(hr))
                {
                        std::wstring wresult = result;
-                       LOG4CXX_DECODE_UNICHAR(decoded, wresult);
+                       LOG4CXX_DECODE_WCHAR(decoded, wresult);
                        LocalFree(result);
                        thread_name = decoded;
                }
diff --git a/src/main/cpp/loglog.cpp b/src/main/cpp/loglog.cpp
index 55929fd8..e9977197 100644
--- a/src/main/cpp/loglog.cpp
+++ b/src/main/cpp/loglog.cpp
@@ -48,7 +48,7 @@ struct LogLog::LogLogPrivate {
 LogLog::LogLog() :
        m_priv(std::make_unique<LogLogPrivate>())
 {
-       LogString log4cxxDebug = 
OptionConverter::getSystemProperty(LOG4CXX_STR("LOG4CXX_DEBUG"), "false");
+       LogString log4cxxDebug = 
OptionConverter::getSystemProperty(LOG4CXX_STR("LOG4CXX_DEBUG"), 
LOG4CXX_STR("false"));
        m_priv->debugEnabled = OptionConverter::toBoolean(log4cxxDebug, false);
 }
 
diff --git a/src/main/cpp/patternlayout.cpp b/src/main/cpp/patternlayout.cpp
index b2f6c56b..08260190 100644
--- a/src/main/cpp/patternlayout.cpp
+++ b/src/main/cpp/patternlayout.cpp
@@ -140,7 +140,7 @@ void PatternLayout::setOption(const LogString& option, 
const LogString& value)
                                                                                
        LOG4CXX_STR("ERRORCOLOR"),
                                                                                
        LOG4CXX_STR("errorcolor"))){
                m_priv->m_errorColor = value;
-               LogLog::debug("Setting error color to ");
+               LogLog::debug(LOG4CXX_STR("Setting error color to "));
                LogLog::debug(value);
        }else if(StringHelper::equalsIgnoreCase(option,
                                                                                
        LOG4CXX_STR("FATALCOLOR"),
diff --git a/src/main/cpp/propertyconfigurator.cpp 
b/src/main/cpp/propertyconfigurator.cpp
index 2ece4d1a..72a3c920 100644
--- a/src/main/cpp/propertyconfigurator.cpp
+++ b/src/main/cpp/propertyconfigurator.cpp
@@ -103,8 +103,9 @@ spi::ConfigurationStatus 
PropertyConfigurator::doConfigure(const File& configFil
        }
        catch (const IOException& ex)
        {
+               LOG4CXX_DECODE_CHAR(lsMsg, ex.what());
                LogLog::error(((LogString) LOG4CXX_STR("Could not read 
configuration file ["))
-                       + configFileName.getPath() + LOG4CXX_STR("].") + ": " + 
ex.what());
+                       + configFileName.getPath() + LOG4CXX_STR("]: ") + 
lsMsg);
                return spi::ConfigurationStatus::NotConfigured;
        }
 
@@ -118,7 +119,7 @@ spi::ConfigurationStatus 
PropertyConfigurator::doConfigure(const File& configFil
        catch (const std::exception& ex)
        {
                LogLog::error(((LogString) LOG4CXX_STR("Could not parse 
configuration file ["))
-                       + configFileName.getPath() + LOG4CXX_STR("]."), ex);
+                       + configFileName.getPath() + LOG4CXX_STR("]: "), ex);
        }
 
        return spi::ConfigurationStatus::NotConfigured;
diff --git a/src/main/cpp/rollingfileappender.cpp 
b/src/main/cpp/rollingfileappender.cpp
index 52b940aa..df553777 100644
--- a/src/main/cpp/rollingfileappender.cpp
+++ b/src/main/cpp/rollingfileappender.cpp
@@ -336,12 +336,11 @@ bool RollingFileAppender::rolloverInternal(Pool& p)
                                                                }
                                                                catch 
(std::exception& ex)
                                                                {
+                                                                       
LOG4CXX_DECODE_CHAR(lsMsg, ex.what());
                                                                        
LogString errorMsg = LOG4CXX_STR("Exception on rollover: ");
-                                                                       
errorMsg.append(ex.what());
+                                                                       
errorMsg.append(lsMsg);
                                                                        
LogLog::error(errorMsg);
-                                                                       
LogString exmsg;
-                                                                       
log4cxx::helpers::Transcoder::decode(ex.what(), exmsg);
-                                                                       
_priv->errorHandler->error(exmsg, ex, 0);
+                                                                       
_priv->errorHandler->error(lsMsg, ex, 0);
                                                                }
                                                        }
 
@@ -399,12 +398,11 @@ bool RollingFileAppender::rolloverInternal(Pool& p)
                                                                }
                                                                catch 
(std::exception& ex)
                                                                {
+                                                                       
LOG4CXX_DECODE_CHAR(lsMsg, ex.what());
                                                                        
LogString errorMsg = LOG4CXX_STR("Exception during rollover: ");
-                                                                       
errorMsg.append(ex.what());
+                                                                       
errorMsg.append(lsMsg);
                                                                        
LogLog::warn(errorMsg);
-                                                                       
LogString exmsg;
-                                                                       
log4cxx::helpers::Transcoder::decode(ex.what(), exmsg);
-                                                                       
_priv->errorHandler->error(exmsg, ex, 0);
+                                                                       
_priv->errorHandler->error(lsMsg, ex, 0);
                                                                }
                                                        }
 
@@ -437,12 +435,11 @@ bool RollingFileAppender::rolloverInternal(Pool& p)
                                }
                                catch (std::exception& ex)
                                {
+                                       LOG4CXX_DECODE_CHAR(lsMsg, ex.what());
                                        LogString errorMsg = 
LOG4CXX_STR("Exception during rollover: ");
-                                       errorMsg.append(ex.what());
+                                       errorMsg.append(lsMsg);
                                        LogLog::warn(errorMsg);
-                                       LogString exmsg;
-                                       
log4cxx::helpers::Transcoder::decode(ex.what(), exmsg);
-                                       _priv->errorHandler->error(exmsg, ex, 
0);
+                                       _priv->errorHandler->error(lsMsg, ex, 
0);
                                }
                }
        }
@@ -473,12 +470,11 @@ void RollingFileAppender::subAppend(const 
LoggingEventPtr& event, Pool& p)
                }
                catch (std::exception& ex)
                {
+                       LOG4CXX_DECODE_CHAR(lsMsg, ex.what());
                        LogString errorMsg = LOG4CXX_STR("Exception during 
rollover attempt: ");
-                       errorMsg.append(ex.what());
+                       errorMsg.append(lsMsg);
                        LogLog::warn(errorMsg);
-                       LogString exmsg;
-                       log4cxx::helpers::Transcoder::decode(ex.what(), exmsg);
-                       _priv->errorHandler->error(exmsg);
+                       _priv->errorHandler->error(lsMsg);
                }
        }
 
diff --git a/src/main/cpp/threadutility.cpp b/src/main/cpp/threadutility.cpp
index a3c59737..a04a90a2 100644
--- a/src/main/cpp/threadutility.cpp
+++ b/src/main/cpp/threadutility.cpp
@@ -21,6 +21,7 @@
 #endif
 #include "log4cxx/private/log4cxx_private.h"
 #include "log4cxx/helpers/loglog.h"
+#include "log4cxx/helpers/transcoder.h"
 
 #include <signal.h>
 #include <mutex>
diff --git a/src/test/cpp/filter/locationinfofiltertest.cpp 
b/src/test/cpp/filter/locationinfofiltertest.cpp
index 4e0a12db..402b97a5 100644
--- a/src/test/cpp/filter/locationinfofiltertest.cpp
+++ b/src/test/cpp/filter/locationinfofiltertest.cpp
@@ -122,7 +122,7 @@ public:
                                li));
                LocationInfoFilterPtr filter(new LocationInfoFilter());
                filter->setLineNumber(50);
-               filter->setMethodName("exampleFun");
+               filter->setMethodName(LOG4CXX_STR("exampleFun"));
                filter->setAcceptOnMatch(true);
                filter->setMustMatchAll(true);
                Pool p;
diff --git a/src/test/cpp/fmttest.cpp b/src/test/cpp/fmttest.cpp
index 2b496e63..3827f69c 100644
--- a/src/test/cpp/fmttest.cpp
+++ b/src/test/cpp/fmttest.cpp
@@ -140,18 +140,18 @@ public:
                        return micros;
                });
 
-               log4cxx::spi::LoggingEventPtr logEvt = 
std::make_shared<log4cxx::spi::LoggingEvent>( "foo",
+               log4cxx::spi::LoggingEventPtr logEvt = 
std::make_shared<log4cxx::spi::LoggingEvent>(LOG4CXX_STR("foo"),
                                                                                
                                                                                
                         Level::getInfo(),
-                                                                               
                                                                                
                         "A Message",
+                                                                               
                                                                                
                         LOG4CXX_STR("A Message"),
                                                                                
                                                                                
                         log4cxx::spi::LocationInfo::getLocationUnavailable());
-               FMTLayout layout("{d:%Y-%m-%d %H:%M:%S} {message}" );
+               FMTLayout layout(LOG4CXX_STR("{d:%Y-%m-%d %H:%M:%S} 
{message}"));
                LogString output;
                log4cxx::helpers::Pool pool;
                layout.format( output, logEvt, pool);
 
                log4cxx::helpers::Date::setGetCurrentTimeFunction(nullptr);
 
-               LOGUNIT_ASSERT_EQUAL("2013-04-11 09:35:34 A Message", output);
+               LOGUNIT_ASSERT_EQUAL(LOG4CXX_STR("2013-04-11 09:35:34 A 
Message"), output);
        }
 
        std::string createMessage(Pool & pool, int i)
diff --git a/src/test/cpp/helpers/localechanger.cpp 
b/src/test/cpp/helpers/localechanger.cpp
index 8dce3c66..a1aeb9eb 100644
--- a/src/test/cpp/helpers/localechanger.cpp
+++ b/src/test/cpp/helpers/localechanger.cpp
@@ -16,6 +16,8 @@
  */
 #define LOG4CXX_TEST
 #include <log4cxx/private/log4cxx_private.h>
+#include "log4cxx/helpers/loglog.h"
+#include "log4cxx/helpers/transcoder.h"
 #if LOG4CXX_HAS_STD_LOCALE
 
 #include "localechanger.h"
@@ -37,11 +39,13 @@ LocaleChanger::LocaleChanger(const char* locale)
                initial = std::locale::global(newLocale);
                effective = true;
        }
-       catch (std::runtime_error&)
-       {
-       }
-       catch (std::exception&)
+       catch (std::exception& ex)
        {
+               LOG4CXX_DECODE_CHAR(lsMsg, ex.what());
+               LogString errorMsg;
+               errorMsg.append(lsMsg);
+               errorMsg.append(LOG4CXX_STR(" - in LocaleChanger"));
+               LogLog::error(errorMsg);
        }
 }
 
diff --git a/src/test/cpp/pattern/colorstartpatternconvertertest.cpp 
b/src/test/cpp/pattern/colorstartpatternconvertertest.cpp
index 0bf6a662..e2f85e52 100644
--- a/src/test/cpp/pattern/colorstartpatternconvertertest.cpp
+++ b/src/test/cpp/pattern/colorstartpatternconvertertest.cpp
@@ -77,10 +77,10 @@ public:
                                                                                
                   LOG4CXX_STR("msg 1"),
                                                                                
                   LOG4CXX_LOCATION));
 
-               colorPatternConverter.setInfoColor("fg(red)");
+               colorPatternConverter.setInfoColor(LOG4CXX_STR("fg(red)"));
                colorPatternConverter.format(event, outputString, p);
 
-               LOGUNIT_ASSERT_EQUAL("\x1b[;31m", outputString);
+               LOGUNIT_ASSERT_EQUAL(LOG4CXX_STR("\x1b[;31m"), outputString);
        }
 
        void testParseBackground()
@@ -95,10 +95,10 @@ public:
                                                                                
                   LOG4CXX_STR("msg 1"),
                                                                                
                   LOG4CXX_LOCATION));
 
-               colorPatternConverter.setInfoColor("bg(red)");
+               colorPatternConverter.setInfoColor(LOG4CXX_STR("bg(red)"));
                colorPatternConverter.format(event, outputString, p);
 
-               LOGUNIT_ASSERT_EQUAL("\x1b[;41m", outputString);
+               LOGUNIT_ASSERT_EQUAL(LOG4CXX_STR("\x1b[;41m"), outputString);
        }
 
        void testParseForegroundAndBackground()
@@ -113,10 +113,10 @@ public:
                                                                                
                   LOG4CXX_STR("msg 1"),
                                                                                
                   LOG4CXX_LOCATION));
 
-               colorPatternConverter.setInfoColor("fg(green)|bg(red)");
+               
colorPatternConverter.setInfoColor(LOG4CXX_STR("fg(green)|bg(red)"));
                colorPatternConverter.format(event, outputString, p);
 
-               LOGUNIT_ASSERT_EQUAL("\x1b[;32;41m", outputString);
+               LOGUNIT_ASSERT_EQUAL(LOG4CXX_STR("\x1b[;32;41m"), outputString);
        }
 
        void testParseUnbalancedParens1(){
@@ -130,10 +130,10 @@ public:
                                                                                
                   LOG4CXX_STR("msg 1"),
                                                                                
                   LOG4CXX_LOCATION));
 
-               colorPatternConverter.setInfoColor("fg(green))");
+               colorPatternConverter.setInfoColor(LOG4CXX_STR("fg(green))"));
                colorPatternConverter.format(event, outputString, p);
 
-               LOGUNIT_ASSERT_EQUAL("\x1b[m", outputString);
+               LOGUNIT_ASSERT_EQUAL(LOG4CXX_STR("\x1b[m"), outputString);
        }
 
        void testParseUnbalancedParens2(){
@@ -147,10 +147,10 @@ public:
                                                                                
                   LOG4CXX_STR("msg 1"),
                                                                                
                   LOG4CXX_LOCATION));
 
-               colorPatternConverter.setInfoColor("fg(green");
+               colorPatternConverter.setInfoColor(LOG4CXX_STR("fg(green"));
                colorPatternConverter.format(event, outputString, p);
 
-               LOGUNIT_ASSERT_EQUAL("\x1b[m", outputString);
+               LOGUNIT_ASSERT_EQUAL(LOG4CXX_STR("\x1b[m"), outputString);
        }
 
        void testParseUnbalancedParens3(){
@@ -164,12 +164,12 @@ public:
                                                                                
                   LOG4CXX_STR("msg 1"),
                                                                                
                   LOG4CXX_LOCATION));
 
-               colorPatternConverter.setInfoColor("fg(green|bg(red)");
+               
colorPatternConverter.setInfoColor(LOG4CXX_STR("fg(green|bg(red)"));
                colorPatternConverter.format(event, outputString, p);
 
                // The background should be parsed correctly, but since the 
foreground
                // is bad it will not work
-               LOGUNIT_ASSERT_EQUAL("\x1b[;41m", outputString);
+               LOGUNIT_ASSERT_EQUAL(LOG4CXX_STR("\x1b[;41m"), outputString);
        }
 
        void testANSICode(){
@@ -183,10 +183,10 @@ public:
                                                                                
                   LOG4CXX_STR("msg 1"),
                                                                                
                   LOG4CXX_LOCATION));
 
-               colorPatternConverter.setInfoColor("\\x1b[34;40m");
+               colorPatternConverter.setInfoColor(LOG4CXX_STR("\\x1b[34;40m"));
                colorPatternConverter.format(event, outputString, p);
 
-               LOGUNIT_ASSERT_EQUAL("\x1b[34;40m", outputString);
+               LOGUNIT_ASSERT_EQUAL(LOG4CXX_STR("\x1b[34;40m"), outputString);
        }
 
        void testInvalidANSICode(){
@@ -200,10 +200,10 @@ public:
                                                                                
                   LOG4CXX_STR("msg 1"),
                                                                                
                   LOG4CXX_LOCATION));
 
-               colorPatternConverter.setInfoColor("\\x1b");
+               colorPatternConverter.setInfoColor(LOG4CXX_STR("\\x1b"));
                colorPatternConverter.format(event, outputString, p);
 
-               LOGUNIT_ASSERT_EQUAL("", outputString);
+               LOGUNIT_ASSERT_EQUAL(LOG4CXX_STR(""), outputString);
        }
 
        void testUnterminatedANSICode(){
@@ -217,10 +217,10 @@ public:
                                                                                
                   LOG4CXX_STR("msg 1"),
                                                                                
                   LOG4CXX_LOCATION));
 
-               colorPatternConverter.setInfoColor("\\x1b[31");
+               colorPatternConverter.setInfoColor(LOG4CXX_STR("\\x1b[31"));
                colorPatternConverter.format(event, outputString, p);
 
-               LOGUNIT_ASSERT_EQUAL("", outputString);
+               LOGUNIT_ASSERT_EQUAL(LOG4CXX_STR(""), outputString);
        }
 
        void testForegroundBackgroundBlink(){
@@ -234,10 +234,10 @@ public:
                                                                                
                   LOG4CXX_STR("msg 1"),
                                                                                
                   LOG4CXX_LOCATION));
 
-               
colorPatternConverter.setInfoColor("fg(white)|bg(black)|blinking");
+               
colorPatternConverter.setInfoColor(LOG4CXX_STR("fg(white)|bg(black)|blinking"));
                colorPatternConverter.format(event, outputString, p);
 
-               LOGUNIT_ASSERT_EQUAL("\x1b[;37;40;5m", outputString);
+               LOGUNIT_ASSERT_EQUAL(LOG4CXX_STR("\x1b[;37;40;5m"), 
outputString);
        }
 
        void testClearColor(){
@@ -251,11 +251,11 @@ public:
                                                                                
                   LOG4CXX_STR("msg 1"),
                                                                                
                   LOG4CXX_LOCATION));
 
-               
colorPatternConverter.setInfoColor("fg(white)|bg(black)|blinking");
-               colorPatternConverter.setInfoColor("");
+               
colorPatternConverter.setInfoColor(LOG4CXX_STR("fg(white)|bg(black)|blinking"));
+               colorPatternConverter.setInfoColor(LOG4CXX_STR(""));
                colorPatternConverter.format(event, outputString, p);
 
-               LOGUNIT_ASSERT_EQUAL("", outputString);
+               LOGUNIT_ASSERT_EQUAL(LOG4CXX_STR(""), outputString);
        }
 
 };
diff --git a/src/test/cpp/pattern/patternparsertestcase.cpp 
b/src/test/cpp/pattern/patternparsertestcase.cpp
index 3b41a83e..b88137e0 100644
--- a/src/test/cpp/pattern/patternparsertestcase.cpp
+++ b/src/test/cpp/pattern/patternparsertestcase.cpp
@@ -29,6 +29,7 @@
 #include <log4cxx/pattern/patternconverter.h>
 #include <log4cxx/helpers/relativetimedateformat.h>
 #include <log4cxx/helpers/simpledateformat.h>
+#include <log4cxx/helpers/transcoder.h>
 
 
 #include <log4cxx/pattern/loggerpatternconverter.h>

Reply via email to