You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by sw...@apache.org on 2023/01/22 01:55:26 UTC
[logging-log4cxx] 01/02: Prevent compilation errors when logchar is not char
This is an automated email from the ASF dual-hosted git repository.
swebb2066 pushed a commit to branch nonchar_logchar_compilation_errors
in repository https://gitbox.apache.org/repos/asf/logging-log4cxx.git
commit 6b4674fe40f4c1829a258d2b52b21afe186b4752
Author: Stephen Webb <st...@sabreautonomous.com.au>
AuthorDate: Sun Jan 22 11:58:30 2023 +1100
Prevent compilation errors when logchar is not char
---
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/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 +-
.../cpp/pattern/colorstartpatternconvertertest.cpp | 46 +++++++++----------
src/test/cpp/pattern/patternparsertestcase.cpp | 1 +
14 files changed, 111 insertions(+), 86 deletions(-)
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/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/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>