You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4cxx-dev@logging.apache.org by ca...@apache.org on 2007/12/21 03:52:42 UTC
svn commit: r606089 [2/6] - in /logging/log4cxx/trunk: ./ src/examples/cpp/
src/main/cpp/ src/main/include/log4cxx/ src/main/include/log4cxx/db/
src/main/include/log4cxx/filter/ src/main/include/log4cxx/helpers/
src/main/include/log4cxx/net/ src/main/i...
Modified: logging/log4cxx/trunk/src/main/cpp/fulllocationpatternconverter.cpp
URL: http://svn.apache.org/viewvc/logging/log4cxx/trunk/src/main/cpp/fulllocationpatternconverter.cpp?rev=606089&r1=606088&r2=606089&view=diff
==============================================================================
--- logging/log4cxx/trunk/src/main/cpp/fulllocationpatternconverter.cpp (original)
+++ logging/log4cxx/trunk/src/main/cpp/fulllocationpatternconverter.cpp Thu Dec 20 18:52:29 2007
@@ -44,9 +44,9 @@
LogString& toAppendTo,
Pool& p) const {
append(toAppendTo, event->getLocationInformation().getFileName());
- toAppendTo.append(1, LOG4CXX_STR('('));
- toAppendTo.append(StringHelper::toString(
+ toAppendTo.append(1, 0x28 /* '(' */);
+ StringHelper::toString(
event->getLocationInformation().getLineNumber(),
- p));
- toAppendTo.append(1, LOG4CXX_STR(')'));
+ p, toAppendTo);
+ toAppendTo.append(1, 0x29 /* ')' */);
}
Modified: logging/log4cxx/trunk/src/main/cpp/hierarchy.cpp
URL: http://svn.apache.org/viewvc/logging/log4cxx/trunk/src/main/cpp/hierarchy.cpp?rev=606089&r1=606088&r2=606089&view=diff
==============================================================================
--- logging/log4cxx/trunk/src/main/cpp/hierarchy.cpp (original)
+++ logging/log4cxx/trunk/src/main/cpp/hierarchy.cpp Thu Dec 20 18:52:29 2007
@@ -316,15 +316,13 @@
int length = name.size();
bool parentFound = false;
- //tcout << _T("UpdateParents called for ") << name << std::endl;
// if name = "w.x.y.z", loop thourgh "w.x.y", "w.x" and "w", but not "w.x.y.z"
- for(size_t i = name.find_last_of(LOG4CXX_STR('.'), length-1);
+ for(size_t i = name.find_last_of(0x2E /* '.' */, length-1);
i != LogString::npos;
- i = name.find_last_of(LOG4CXX_STR('.'), i-1))
+ i = name.find_last_of(0x2E /* '.' */, i-1))
{
LogString substr = name.substr(0, i);
- //tcout << _T("UpdateParents processing ") << substr << std::endl;
LoggerMap::iterator it = loggers.find(substr);
if(it != loggers.end())
@@ -342,7 +340,6 @@
}
else
{
- //tcout << _T("Inserting ProvisionNode for ") << substr << std::endl;
ProvisionNode node(1, logger);
provisionNodes.insert(
ProvisionNodeMap::value_type(substr, node));
@@ -359,14 +356,12 @@
void Hierarchy::updateChildren(ProvisionNode& pn, LoggerPtr logger)
{
- //tcout << _T("updateChildren called for ") << logger->name << std::endl;
ProvisionNode::iterator it, itEnd = pn.end();
for(it = pn.begin(); it != itEnd; it++)
{
LoggerPtr& l = *it;
- //tcout << _T("Updating child ") << l->name << std::endl;
// Unless this child already points to a correct (lower) parent,
// make cat.parent point to l.parent and l.parent to cat.
Modified: logging/log4cxx/trunk/src/main/cpp/htmllayout.cpp
URL: http://svn.apache.org/viewvc/logging/log4cxx/trunk/src/main/cpp/htmllayout.cpp?rev=606089&r1=606088&r2=606089&view=diff
==============================================================================
--- logging/log4cxx/trunk/src/main/cpp/htmllayout.cpp (original)
+++ logging/log4cxx/trunk/src/main/cpp/htmllayout.cpp Thu Dec 20 18:52:29 2007
@@ -25,7 +25,6 @@
#include <log4cxx/helpers/stringhelper.h>
#include <log4cxx/helpers/transcoder.h>
-#include <apr_pools.h>
#include <apr_time.h>
#include <apr_strings.h>
#include <string.h>
@@ -63,21 +62,26 @@
void HTMLLayout::format(LogString& output,
const spi::LoggingEventPtr& event,
- Pool& pool) const
+ Pool& p) const
{
- output.append(LOG4CXX_EOL LOG4CXX_STR("<tr>") LOG4CXX_EOL LOG4CXX_STR("<td>"));
+ output.append(LOG4CXX_EOL);
+ output.append(LOG4CXX_STR("<tr>"));
+ output.append(LOG4CXX_EOL);
+ output.append(LOG4CXX_STR("<td>"));
- dateFormat.format(output, event->getTimeStamp(), pool);
+ dateFormat.format(output, event->getTimeStamp(), p);
- output.append(LOG4CXX_STR("</td>") LOG4CXX_EOL);
+ output.append(LOG4CXX_STR("</td>"));
+ output.append(LOG4CXX_EOL);
output.append(LOG4CXX_STR("<td title=\""));
LogString threadName(event->getThreadName());
output.append(threadName);
output.append(LOG4CXX_STR(" thread\">"));
output.append(threadName);
- output.append(LOG4CXX_STR("</td>") LOG4CXX_EOL);
+ output.append(LOG4CXX_STR("</td>"));
+ output.append(LOG4CXX_EOL);
output.append(LOG4CXX_STR("<td title=\"Level\">"));
if (event->getLevel()->equals(Level::getDebug()))
@@ -97,13 +101,15 @@
output.append(event->getLevel()->toString());
}
- output.append(LOG4CXX_STR("</td>") LOG4CXX_EOL);
+ output.append(LOG4CXX_STR("</td>"));
+ output.append(LOG4CXX_EOL);
output.append(LOG4CXX_STR("<td title=\""));
output.append(event->getLoggerName());
output.append(LOG4CXX_STR(" logger\">"));
Transform::appendEscapingTags(output, event->getLoggerName());
- output.append(LOG4CXX_STR("</td>") LOG4CXX_EOL);
+ output.append(LOG4CXX_STR("</td>"));
+ output.append(LOG4CXX_EOL);
if(locationInfo)
{
@@ -111,19 +117,22 @@
const LocationInfo& locInfo = event->getLocationInformation();
LOG4CXX_DECODE_CHAR(fileName, locInfo.getFileName());
Transform::appendEscapingTags(output, fileName);
- output.append(1, LOG4CXX_STR(':'));
+ output.append(1, 0x3A /* ':' */);
int line = event->getLocationInformation().getLineNumber();
if (line != 0)
{
- output.append(StringHelper::toString(line, pool));
+ StringHelper::toString(line, p, output);
}
- output.append(LOG4CXX_STR("</td>") LOG4CXX_EOL);
+ output.append(LOG4CXX_STR("</td>"));
+ output.append(LOG4CXX_EOL);
}
output.append(LOG4CXX_STR("<td title=\"Message\">"));
Transform::appendEscapingTags(output, event->getRenderedMessage());
- output.append(LOG4CXX_STR("</td>") LOG4CXX_EOL);
- output.append(LOG4CXX_STR("</tr>") LOG4CXX_EOL);
+ output.append(LOG4CXX_STR("</td>"));
+ output.append(LOG4CXX_EOL);
+ output.append(LOG4CXX_STR("</tr>"));
+ output.append(LOG4CXX_EOL);
LogString ndcVal;
if (event->getNDC(ndcVal))
@@ -133,52 +142,79 @@
output.append(LOG4CXX_STR("title=\"Nested Diagnostic Context\">"));
output.append(LOG4CXX_STR("NDC: "));
Transform::appendEscapingTags(output, ndcVal);
- output.append(LOG4CXX_STR("</td></tr>") LOG4CXX_EOL);
+ output.append(LOG4CXX_STR("</td></tr>"));
+ output.append(LOG4CXX_EOL);
}
}
-void HTMLLayout::appendHeader(LogString& output, Pool& pool)
+void HTMLLayout::appendHeader(LogString& output, Pool& p)
{
output.append(LOG4CXX_STR("<!DOCTYPE HTML PUBLIC "));
output.append(LOG4CXX_STR("\"-//W3C//DTD HTML 4.01 Transitional//EN\" "));
- output.append(LOG4CXX_STR("\"http://www.w3.org/TR/html4/loose.dtd\">") LOG4CXX_EOL);
- output.append(LOG4CXX_STR("<html>") LOG4CXX_EOL);
- output.append(LOG4CXX_STR("<head>") LOG4CXX_EOL);
+ output.append(LOG4CXX_STR("\"http://www.w3.org/TR/html4/loose.dtd\">"));
+ output.append(LOG4CXX_EOL);
+ output.append(LOG4CXX_STR("<html>"));
+ output.append(LOG4CXX_EOL);
+ output.append(LOG4CXX_STR("<head>"));
+ output.append(LOG4CXX_EOL);
output.append(LOG4CXX_STR("<title>"));
output.append(title);
- output.append(LOG4CXX_STR("</title>") LOG4CXX_EOL);
- output.append(LOG4CXX_STR("<style type=\"text/css\">") LOG4CXX_EOL);
- output.append(LOG4CXX_STR("<!--") LOG4CXX_EOL);
- output.append(LOG4CXX_STR("body, table {font-family: arial,sans-serif; font-size: x-small;}") LOG4CXX_EOL);
- output.append(LOG4CXX_STR("th {background: #336699; color: #FFFFFF; text-align: left;}") LOG4CXX_EOL);
- output.append(LOG4CXX_STR("-->") LOG4CXX_EOL);
- output.append(LOG4CXX_STR("</style>") LOG4CXX_EOL);
- output.append(LOG4CXX_STR("</head>") LOG4CXX_EOL);
- output.append(LOG4CXX_STR("<body bgcolor=\"#FFFFFF\" topmargin=\"6\" leftmargin=\"6\">") LOG4CXX_EOL);
- output.append(LOG4CXX_STR("<hr size=\"1\" noshade>") LOG4CXX_EOL);
+ output.append(LOG4CXX_STR("</title>"));
+ output.append(LOG4CXX_EOL);
+ output.append(LOG4CXX_STR("<style type=\"text/css\">"));
+ output.append(LOG4CXX_EOL);
+ output.append(LOG4CXX_STR("<!--"));
+ output.append(LOG4CXX_EOL);
+ output.append(LOG4CXX_STR("body, table {font-family: arial,sans-serif; font-size: x-small;}"));
+ output.append(LOG4CXX_EOL);
+ output.append(LOG4CXX_STR("th {background: #336699; color: #FFFFFF; text-align: left;}"));
+ output.append(LOG4CXX_EOL);
+ output.append(LOG4CXX_STR("-->"));
+ output.append(LOG4CXX_EOL);
+ output.append(LOG4CXX_STR("</style>"));
+ output.append(LOG4CXX_EOL);
+ output.append(LOG4CXX_STR("</head>"));
+ output.append(LOG4CXX_EOL);
+ output.append(LOG4CXX_STR("<body bgcolor=\"#FFFFFF\" topmargin=\"6\" leftmargin=\"6\">"));
+ output.append(LOG4CXX_EOL);
+ output.append(LOG4CXX_STR("<hr size=\"1\" noshade>"));
+ output.append(LOG4CXX_EOL);
output.append(LOG4CXX_STR("Log session start time "));
- dateFormat.format(output, apr_time_now(), pool);
+ dateFormat.format(output, apr_time_now(), p);
- output.append(LOG4CXX_STR("<br>") LOG4CXX_EOL);
- output.append(LOG4CXX_STR("<br>") LOG4CXX_EOL);
- output.append(LOG4CXX_STR("<table cellspacing=\"0\" cellpadding=\"4\" border=\"1\" bordercolor=\"#224466\" width=\"100%\">") LOG4CXX_EOL);
- output.append(LOG4CXX_STR("<tr>") LOG4CXX_EOL);
- output.append(LOG4CXX_STR("<th>Time</th>") LOG4CXX_EOL);
- output.append(LOG4CXX_STR("<th>Thread</th>") LOG4CXX_EOL);
- output.append(LOG4CXX_STR("<th>Level</th>") LOG4CXX_EOL);
- output.append(LOG4CXX_STR("<th>Logger</th>") LOG4CXX_EOL);
+ output.append(LOG4CXX_STR("<br>"));
+ output.append(LOG4CXX_EOL);
+ output.append(LOG4CXX_STR("<br>"));
+ output.append(LOG4CXX_EOL);
+ output.append(LOG4CXX_STR("<table cellspacing=\"0\" cellpadding=\"4\" border=\"1\" bordercolor=\"#224466\" width=\"100%\">"));
+ output.append(LOG4CXX_EOL);
+ output.append(LOG4CXX_STR("<tr>"));
+ output.append(LOG4CXX_EOL);
+ output.append(LOG4CXX_STR("<th>Time</th>"));
+ output.append(LOG4CXX_EOL);
+ output.append(LOG4CXX_STR("<th>Thread</th>"));
+ output.append(LOG4CXX_EOL);
+ output.append(LOG4CXX_STR("<th>Level</th>"));
+ output.append(LOG4CXX_EOL);
+ output.append(LOG4CXX_STR("<th>Logger</th>"));
+ output.append(LOG4CXX_EOL);
if(locationInfo)
{
- output.append(LOG4CXX_STR("<th>File:Line</th>") LOG4CXX_EOL);
+ output.append(LOG4CXX_STR("<th>File:Line</th>"));
+ output.append(LOG4CXX_EOL);
}
- output.append(LOG4CXX_STR("<th>Message</th>") LOG4CXX_EOL);
- output.append(LOG4CXX_STR("</tr>") LOG4CXX_EOL);
+ output.append(LOG4CXX_STR("<th>Message</th>"));
+ output.append(LOG4CXX_EOL);
+ output.append(LOG4CXX_STR("</tr>"));
+ output.append(LOG4CXX_EOL);
}
void HTMLLayout::appendFooter(LogString& output, Pool& /* pool */ )
{
- output.append(LOG4CXX_STR("</table>") LOG4CXX_EOL);
- output.append(LOG4CXX_STR("<br>") LOG4CXX_EOL);
+ output.append(LOG4CXX_STR("</table>"));
+ output.append(LOG4CXX_EOL);
+ output.append(LOG4CXX_STR("<br>"));
+ output.append(LOG4CXX_EOL);
output.append(LOG4CXX_STR("</body></html>"));
}
Modified: logging/log4cxx/trunk/src/main/cpp/inetaddress.cpp
URL: http://svn.apache.org/viewvc/logging/log4cxx/trunk/src/main/cpp/inetaddress.cpp?rev=606089&r1=606088&r2=606089&view=diff
==============================================================================
--- logging/log4cxx/trunk/src/main/cpp/inetaddress.cpp (original)
+++ logging/log4cxx/trunk/src/main/cpp/inetaddress.cpp Thu Dec 20 18:52:29 2007
@@ -28,7 +28,7 @@
IMPLEMENT_LOG4CXX_OBJECT(InetAddress)
-UnknownHostException::UnknownHostException(const std::string& msg1)
+UnknownHostException::UnknownHostException(const LogString& msg1)
: Exception(msg1) {
}
@@ -63,9 +63,7 @@
LogString msg(LOG4CXX_STR("Cannot get information about host: "));
msg.append(host);
LogLog::error(msg);
- std::string s;
- Transcoder::encode(msg, s);
- throw UnknownHostException(s);
+ throw UnknownHostException(msg);
}
std::vector<InetAddressPtr> result;
@@ -75,17 +73,19 @@
LogString ipAddrString;
char *ipAddr;
status = apr_sockaddr_ip_get(&ipAddr, currentAddr);
- if (status == APR_SUCCESS) {
- Transcoder::decode(ipAddr, strlen(ipAddr), ipAddrString);
- }
+ if (status == APR_SUCCESS) {
+ std::string ip(ipAddr);
+ Transcoder::decode(ip, ipAddrString);
+ }
// retrieve the host name of this InetAddress.
LogString hostNameString;
char *hostName;
status = apr_getnameinfo(&hostName, currentAddr, 0);
- if (status == APR_SUCCESS) {
- Transcoder::decode(hostName, strlen(hostName), hostNameString);
- }
+ if (status == APR_SUCCESS) {
+ std::string host(hostName);
+ Transcoder::decode(host, hostNameString);
+ }
result.push_back(new InetAddress(hostNameString, ipAddrString));
currentAddr = currentAddr->next;
Modified: logging/log4cxx/trunk/src/main/cpp/inputstreamreader.cpp
URL: http://svn.apache.org/viewvc/logging/log4cxx/trunk/src/main/cpp/inputstreamreader.cpp?rev=606089&r1=606088&r2=606089&view=diff
==============================================================================
--- logging/log4cxx/trunk/src/main/cpp/inputstreamreader.cpp (original)
+++ logging/log4cxx/trunk/src/main/cpp/inputstreamreader.cpp Thu Dec 20 18:52:29 2007
@@ -29,17 +29,17 @@
InputStreamReader::InputStreamReader(const InputStreamPtr& in1)
: in(in1), dec(CharsetDecoder::getDefaultDecoder()) {
if (in1 == 0) {
- throw NullPointerException("in parameter may not be null.");
+ throw NullPointerException(LOG4CXX_STR("in parameter may not be null."));
}
}
InputStreamReader::InputStreamReader(const InputStreamPtr& in1, const CharsetDecoderPtr &dec1)
: in(in1), dec(dec1) {
if (in1 == 0) {
- throw NullPointerException("in parameter may not be null.");
+ throw NullPointerException(LOG4CXX_STR("in parameter may not be null."));
}
if (dec1 == 0) {
- throw NullPointerException("dec parameter may not be null.");
+ throw NullPointerException(LOG4CXX_STR("dec parameter may not be null."));
}
}
Modified: logging/log4cxx/trunk/src/main/cpp/integerpatternconverter.cpp
URL: http://svn.apache.org/viewvc/logging/log4cxx/trunk/src/main/cpp/integerpatternconverter.cpp?rev=606089&r1=606088&r2=606089&view=diff
==============================================================================
--- logging/log4cxx/trunk/src/main/cpp/integerpatternconverter.cpp (original)
+++ logging/log4cxx/trunk/src/main/cpp/integerpatternconverter.cpp Thu Dec 20 18:52:29 2007
@@ -44,8 +44,6 @@
Pool& p) const {
IntegerPtr i(obj);
if (i != NULL) {
- toAppendTo.append(StringHelper::toString(
- i->intValue(),
- p));
+ StringHelper::toString(i->intValue(), p, toAppendTo);
}
}
Modified: logging/log4cxx/trunk/src/main/cpp/level.cpp
URL: http://svn.apache.org/viewvc/logging/log4cxx/trunk/src/main/cpp/level.cpp?rev=606089&r1=606088&r2=606089&view=diff
==============================================================================
--- logging/log4cxx/trunk/src/main/cpp/level.cpp (original)
+++ logging/log4cxx/trunk/src/main/cpp/level.cpp Thu Dec 20 18:52:29 2007
@@ -29,43 +29,43 @@
IMPLEMENT_LOG4CXX_OBJECT_WITH_CUSTOM_CLASS(Level, LevelClass)
-const LevelPtr& Level::getOff() {
+LevelPtr Level::getOff() {
static LevelPtr level(new Level(Level::OFF_INT, LOG4CXX_STR("OFF"), 0));
return level;
}
-const LevelPtr& Level::getFatal() {
+LevelPtr Level::getFatal() {
static LevelPtr level(new Level(Level::FATAL_INT, LOG4CXX_STR("FATAL"), 0));
return level;
}
-const LevelPtr& Level::getError() {
+LevelPtr Level::getError() {
static LevelPtr level(new Level(Level::ERROR_INT, LOG4CXX_STR("ERROR"), 3));
return level;
}
-const LevelPtr& Level::getWarn() {
+LevelPtr Level::getWarn() {
static LevelPtr level(new Level(Level::WARN_INT, LOG4CXX_STR("WARN"), 4));
return level;
}
-const LevelPtr& Level::getInfo() {
+LevelPtr Level::getInfo() {
static LevelPtr level(new Level(Level::INFO_INT, LOG4CXX_STR("INFO"), 6));
return level;
}
-const LevelPtr& Level::getDebug() {
+LevelPtr Level::getDebug() {
static LevelPtr level(new Level(Level::DEBUG_INT, LOG4CXX_STR("DEBUG"), 7));
return level;
}
-const LevelPtr& Level::getTrace() {
+LevelPtr Level::getTrace() {
static LevelPtr level(new Level(Level::TRACE_INT, LOG4CXX_STR("TRACE"), 7));
return level;
}
-const LevelPtr& Level::getAll() {
+LevelPtr Level::getAll() {
static LevelPtr level(new Level(Level::ALL_INT, LOG4CXX_STR("ALL"), 7));
return level;
}
@@ -73,31 +73,29 @@
Level::Level(int level1,
- const logchar* name1, int syslogEquivalent1)
+ const LogString& name1, int syslogEquivalent1)
: level(level1), name(name1), syslogEquivalent(syslogEquivalent1)
{
APRInitializer::initialize();
}
-const LevelPtr& Level::toLevel(const std::string& sArg)
+LevelPtr Level::toLevelLS(const LogString& sArg)
{
- return toLevel(sArg, Level::getDebug());
+ return toLevelLS(sArg, Level::getDebug());
}
-#if LOG4CXX_HAS_WCHAR_T
-const LevelPtr& Level::toLevel(const std::wstring& sArg)
-{
- return toLevel(sArg, Level::getDebug());
+LogString Level::toString() const {
+ return name;
}
-#endif
-const LevelPtr& Level::toLevel(int val)
+
+LevelPtr Level::toLevel(int val)
{
return toLevel(val, Level::getDebug());
}
-const LevelPtr& Level::toLevel(int val, const LevelPtr& defaultLevel)
+LevelPtr Level::toLevel(int val, const LevelPtr& defaultLevel)
{
switch(val)
{
@@ -113,78 +111,107 @@
}
}
-const LevelPtr& Level::toLevel(const std::string& sArg, const LevelPtr& defaultLevel)
+LevelPtr Level::toLevel(const std::string& sArg)
{
- const size_t len = sArg.length();
+ return toLevel(sArg, Level::getDebug());
+}
- if (len == 4) {
- if (StringHelper::equalsIgnoreCase(sArg, "INFO", "info")) {
- return getInfo();
- }
- if (StringHelper::equalsIgnoreCase(sArg, "WARN", "warn")) {
- return getWarn();
- }
- } else {
- if (len == 5) {
- if (StringHelper::equalsIgnoreCase(sArg, "DEBUG", "debug")) {
- return getDebug();
- }
- if (StringHelper::equalsIgnoreCase(sArg, "TRACE", "trace")) {
- return getTrace();
- }
- if (StringHelper::equalsIgnoreCase(sArg, "ERROR", "error")) {
- return getError();
- }
- if (StringHelper::equalsIgnoreCase(sArg, "FATAL", "fatal")) {
- return getFatal();
- }
- } else {
- if (len == 3) {
- if (StringHelper::equalsIgnoreCase(sArg, "OFF", "off")) {
- return getOff();
- }
- if (StringHelper::equalsIgnoreCase(sArg, "ALL", "all")) {
- return getAll();
- }
- }
- }
- }
+LevelPtr Level::toLevel(const std::string& sArg, const LevelPtr& defaultLevel)
+{
+ LOG4CXX_DECODE_CHAR(s, sArg);
+ return toLevelLS(s, defaultLevel);
+}
- return defaultLevel;
+void Level::toString(std::string& dst) const {
+ Transcoder::encode(name, dst);
}
-#if LOG4CXX_HAS_WCHAR_T
-const LevelPtr& Level::toLevel(const std::wstring& sArg, const LevelPtr& defaultLevel)
+#if LOG4CXX_WCHAR_T_API
+LevelPtr Level::toLevel(const std::wstring& sArg)
+{
+ return toLevel(sArg, Level::getDebug());
+}
+
+LevelPtr Level::toLevel(const std::wstring& sArg, const LevelPtr& defaultLevel)
+{
+ LOG4CXX_DECODE_WCHAR(s, sArg);
+ return toLevelLS(s, defaultLevel);
+}
+
+void Level::toString(std::wstring& dst) const {
+ Transcoder::encode(name, dst);
+}
+
+#endif
+
+#if LOG4CXX_UNICHAR_API
+LevelPtr Level::toLevel(const std::basic_string<UniChar>& sArg)
+{
+ return toLevel(sArg, Level::getDebug());
+}
+
+LevelPtr Level::toLevel(const std::basic_string<UniChar>& sArg, const LevelPtr& defaultLevel)
+{
+ LOG4CXX_DECODE_UNICHAR(s, sArg);
+ return toLevelLS(s, defaultLevel);
+}
+
+void Level::toString(std::basic_string<UniChar>& dst) const {
+ Transcoder::encode(name, dst);
+}
+
+#endif
+
+#if LOG4CXX_CFSTRING_API
+LevelPtr Level::toLevel(const CFStringRef& sArg)
+{
+ return toLevel(sArg, Level::getDebug());
+}
+
+LevelPtr Level::toLevel(const CFStringRef& sArg, const LevelPtr& defaultLevel)
+{
+ LogString s;
+ Transcoder::decode(sArg, s);
+ return toLevelLS(s, defaultLevel);
+}
+
+void Level::toString(CFStringRef& dst) const {
+ dst = Transcoder::encode(name);
+}
+#endif
+
+
+LevelPtr Level::toLevelLS(const LogString& sArg, const LevelPtr& defaultLevel)
{
const size_t len = sArg.length();
if (len == 4) {
- if (StringHelper::equalsIgnoreCase(sArg, L"INFO", L"info")) {
+ if (StringHelper::equalsIgnoreCase(sArg, LOG4CXX_STR("INFO"), LOG4CXX_STR("info"))) {
return getInfo();
}
- if (StringHelper::equalsIgnoreCase(sArg, L"WARN", L"warn")) {
+ if (StringHelper::equalsIgnoreCase(sArg, LOG4CXX_STR("WARN"), LOG4CXX_STR("warn"))) {
return getWarn();
}
} else {
if (len == 5) {
- if (StringHelper::equalsIgnoreCase(sArg, L"DEBUG", L"debug")) {
+ if (StringHelper::equalsIgnoreCase(sArg, LOG4CXX_STR("DEBUG"), LOG4CXX_STR("debug"))) {
return getDebug();
}
- if (StringHelper::equalsIgnoreCase(sArg, L"TRACE", L"trace")) {
+ if (StringHelper::equalsIgnoreCase(sArg, LOG4CXX_STR("TRACE"), LOG4CXX_STR("trace"))) {
return getTrace();
}
- if (StringHelper::equalsIgnoreCase(sArg, L"ERROR", L"error")) {
+ if (StringHelper::equalsIgnoreCase(sArg, LOG4CXX_STR("ERROR"), LOG4CXX_STR("error"))) {
return getError();
}
- if (StringHelper::equalsIgnoreCase(sArg, L"FATAL", L"fatal")) {
+ if (StringHelper::equalsIgnoreCase(sArg, LOG4CXX_STR("FATAL"), LOG4CXX_STR("fatal"))) {
return getFatal();
}
} else {
if (len == 3) {
- if (StringHelper::equalsIgnoreCase(sArg, L"OFF", L"off")) {
+ if (StringHelper::equalsIgnoreCase(sArg, LOG4CXX_STR("OFF"), LOG4CXX_STR("off"))) {
return getOff();
}
- if (StringHelper::equalsIgnoreCase(sArg, L"ALL", L"all")) {
+ if (StringHelper::equalsIgnoreCase(sArg, LOG4CXX_STR("ALL"), LOG4CXX_STR("all"))) {
return getAll();
}
}
@@ -193,7 +220,7 @@
return defaultLevel;
}
-#endif
+
bool Level::equals(const LevelPtr& level1) const
{
@@ -204,14 +231,4 @@
{
return this->level >= level1->level;
}
-
-void Level::toString(std::string& str) const {
- Transcoder::encode(name, str);
-}
-
-#if LOG4CXX_HAS_WCHAR_T
-void Level::toString(std::wstring& str) const {
- Transcoder::encode(name, str);
-}
-#endif
Modified: logging/log4cxx/trunk/src/main/cpp/levelmatchfilter.cpp
URL: http://svn.apache.org/viewvc/logging/log4cxx/trunk/src/main/cpp/levelmatchfilter.cpp?rev=606089&r1=606088&r2=606089&view=diff
==============================================================================
--- logging/log4cxx/trunk/src/main/cpp/levelmatchfilter.cpp (original)
+++ logging/log4cxx/trunk/src/main/cpp/levelmatchfilter.cpp Thu Dec 20 18:52:29 2007
@@ -57,7 +57,7 @@
this->levelToMatch = OptionConverter::toLevel(levelToMatch1, this->levelToMatch);
}
-const LogString& LevelMatchFilter::getLevelToMatch() const
+LogString LevelMatchFilter::getLevelToMatch() const
{
return levelToMatch->toString();
}
Modified: logging/log4cxx/trunk/src/main/cpp/linelocationpatternconverter.cpp
URL: http://svn.apache.org/viewvc/logging/log4cxx/trunk/src/main/cpp/linelocationpatternconverter.cpp?rev=606089&r1=606088&r2=606089&view=diff
==============================================================================
--- logging/log4cxx/trunk/src/main/cpp/linelocationpatternconverter.cpp (original)
+++ logging/log4cxx/trunk/src/main/cpp/linelocationpatternconverter.cpp Thu Dec 20 18:52:29 2007
@@ -43,7 +43,7 @@
const LoggingEventPtr& event,
LogString& toAppendTo,
Pool& p) const {
- toAppendTo.append(StringHelper::toString(
+ StringHelper::toString(
event->getLocationInformation().getLineNumber(),
- p));
+ p, toAppendTo);
}
Modified: logging/log4cxx/trunk/src/main/cpp/literalpatternconverter.cpp
URL: http://svn.apache.org/viewvc/logging/log4cxx/trunk/src/main/cpp/literalpatternconverter.cpp?rev=606089&r1=606088&r2=606089&view=diff
==============================================================================
--- logging/log4cxx/trunk/src/main/cpp/literalpatternconverter.cpp (original)
+++ logging/log4cxx/trunk/src/main/cpp/literalpatternconverter.cpp Thu Dec 20 18:52:29 2007
@@ -35,7 +35,7 @@
PatternConverterPtr LiteralPatternConverter::newInstance(
const LogString& literal) {
- if (literal.length() == 1 && literal[0] == LOG4CXX_STR(' ')) {
+ if (literal.length() == 1 && literal[0] == 0x20 /* ' ' */) {
static PatternConverterPtr blank(new LiteralPatternConverter(literal));
return blank;
}
Modified: logging/log4cxx/trunk/src/main/cpp/logger.cpp
URL: http://svn.apache.org/viewvc/logging/log4cxx/trunk/src/main/cpp/logger.cpp?rev=606089&r1=606088&r2=606089&view=diff
==============================================================================
--- logging/log4cxx/trunk/src/main/cpp/logger.cpp (original)
+++ logging/log4cxx/trunk/src/main/cpp/logger.cpp Thu Dec 20 18:52:29 2007
@@ -55,8 +55,6 @@
}
-
-
void Logger::addAppender(const AppenderPtr& newAppender)
{
synchronized sync(mutex);
@@ -117,16 +115,6 @@
callAppenders(event, p);
}
-#if LOG4CXX_HAS_WCHAR_T
-void Logger::forcedLog(const LevelPtr& level1, const std::wstring& message,
- const LocationInfo& location)
-{
- Pool p;
- LOG4CXX_DECODE_WCHAR(msg, message);
- LoggingEventPtr event(new LoggingEvent(this, level1, msg, location));
- callAppenders(event, p);
-}
-#endif
void Logger::forcedLog(const LevelPtr& level1, const std::string& message) const
{
@@ -137,17 +125,6 @@
callAppenders(event, p);
}
-#if LOG4CXX_HAS_WCHAR_T
-void Logger::forcedLog(const LevelPtr& level1, const std::wstring& message) const
-{
- Pool p;
- LOG4CXX_DECODE_WCHAR(msg, message);
- LoggingEventPtr event(new LoggingEvent(this, level1, msg,
- LocationInfo::getLocationUnavailable()));
- callAppenders(event, p);
-}
-#endif
-
void Logger::forcedLogLS(const LevelPtr& level1, const LogString& message,
const LocationInfo& location)
{
@@ -198,7 +175,7 @@
}
}
- throw NullPointerException("No level specified for logger or ancestors.");
+ throw NullPointerException(LOG4CXX_STR("No level specified for logger or ancestors."));
#if LOG4CXX_RETURN_AFTER_THROW
return this->level;
#endif
@@ -224,7 +201,7 @@
}
-LogString Logger::getResourceBundleString(const LogString& key) const
+LogString Logger::getResourceBundleString(const LogString& key)
{
ResourceBundlePtr rb = getResourceBundle();
@@ -251,12 +228,12 @@
}
-const LoggerPtr& Logger::getParent() const
+LoggerPtr Logger::getParent() const
{
return parent;
}
-const LevelPtr& Logger::getLevel() const
+LevelPtr Logger::getLevel() const
{
return level;
}
@@ -283,7 +260,7 @@
return false;
}
- return Level::getTrace()->isGreaterOrEqual(getEffectiveLevel());
+ return getEffectiveLevel()->toInt() <= Level::TRACE_INT;
}
bool Logger::isDebugEnabled() const
@@ -293,7 +270,7 @@
return false;
}
- return Level::getDebug()->isGreaterOrEqual(getEffectiveLevel());
+ return getEffectiveLevel()->toInt() <= Level::DEBUG_INT;
}
bool Logger::isEnabledFor(const LevelPtr& level1) const
@@ -314,7 +291,7 @@
return false;
}
- return Level::getInfo()->isGreaterOrEqual(getEffectiveLevel());
+ return getEffectiveLevel()->toInt() <= Level::INFO_INT;
}
bool Logger::isErrorEnabled() const
@@ -324,7 +301,7 @@
return false;
}
- return Level::getError()->isGreaterOrEqual(getEffectiveLevel());
+ return getEffectiveLevel()->toInt() <= Level::ERROR_INT;
}
bool Logger::isWarnEnabled() const
@@ -334,7 +311,7 @@
return false;
}
- return Level::getWarn()->isGreaterOrEqual(getEffectiveLevel());
+ return getEffectiveLevel()->toInt() <= Level::WARN_INT;
}
bool Logger::isFatalEnabled() const
@@ -344,7 +321,7 @@
return false;
}
- return Level::getFatal()->isGreaterOrEqual(getEffectiveLevel());
+ return getEffectiveLevel()->toInt() <= Level::FATAL_INT;
}
/*void Logger::l7dlog(const LevelPtr& level, const String& key,
@@ -371,6 +348,7 @@
}*/
+
void Logger::l7dlog(const LevelPtr& level1, const LogString& key,
const LocationInfo& location, const std::vector<LogString>& params)
{
@@ -444,56 +422,6 @@
}
-#if LOG4CXX_HAS_WCHAR_T
-
-void Logger::l7dlog(const LevelPtr& level1, const std::wstring& key,
- const LocationInfo& location) {
- LOG4CXX_DECODE_WCHAR(lkey, key);
-
- std::vector<LogString> values(0);
- l7dlog(level1, lkey, location, values);
-}
-
-void Logger::l7dlog(const LevelPtr& level1, const std::wstring& key,
- const LocationInfo& location,
- const std::wstring& val1) {
- LOG4CXX_DECODE_WCHAR(lval1, val1);
- LOG4CXX_DECODE_WCHAR(lkey, key);
-
- std::vector<LogString> values(1);
- values[0] = lval1;
- l7dlog(level1, lkey, location, values);
-}
-
-void Logger::l7dlog(const LevelPtr& level1, const std::wstring& key,
- const LocationInfo& location,
- const std::wstring& val1, const std::wstring& val2) {
- LOG4CXX_DECODE_WCHAR(lval1, val1);
- LOG4CXX_DECODE_WCHAR(lval2, val2);
- LOG4CXX_DECODE_WCHAR(lkey, key);
-
- std::vector<LogString> values(2);
- values[0] = lval1;
- values[1] = lval2;
- l7dlog(level1, lkey, location, values);
-}
-
-void Logger::l7dlog(const LevelPtr& level1, const std::wstring& key,
- const LocationInfo& location,
- const std::wstring& val1, const std::wstring& val2, const std::wstring& val3) {
- LOG4CXX_DECODE_WCHAR(lval1, val1);
- LOG4CXX_DECODE_WCHAR(lval2, val2);
- LOG4CXX_DECODE_WCHAR(lval3, val3);
- LOG4CXX_DECODE_WCHAR(lkey, key);
-
- std::vector<LogString> values(3);
- values[0] = lval1;
- values[1] = lval2;
- values[2] = lval3;
- l7dlog(level1, lkey, location, values);
-}
-
-#endif
void Logger::removeAllAppenders()
{
@@ -554,29 +482,12 @@
return LogManager::getLogger(lname);
}
-#if LOG4CXX_HAS_WCHAR_T
-LoggerPtr Logger::getLogger(const std::wstring& name)
-{
- LOG4CXX_DECODE_WCHAR(lname, name);
- return LogManager::getLogger(lname);
-}
-#endif
LoggerPtr Logger::getLogger(const char* const name)
{
- LogString lname;
- Transcoder::decode(name, strlen(name), lname);
- return LogManager::getLogger(lname);
+ return LogManager::getLogger(name);
}
-#if LOG4CXX_HAS_WCHAR_T
-LoggerPtr Logger::getLogger(const wchar_t* const name)
-{
- LogString lname;
- Transcoder::decode(name, wcslen(name), lname);
- return LogManager::getLogger(lname);
-}
-#endif
LoggerPtr Logger::getRootLogger() {
@@ -593,214 +504,464 @@
Transcoder::encode(name, rv);
}
-#if LOG4CXX_HAS_WCHAR_T
-void Logger::getName(std::wstring& rv) const {
- Transcoder::encode(name, rv);
-}
-#endif
void Logger::trace(const std::string& msg, const log4cxx::spi::LocationInfo& location) {
- if (isEnabledFor(log4cxx::Level::getTrace())) {
+ if (isTraceEnabled()) {
forcedLog(log4cxx::Level::getTrace(), msg, location);
}
}
-#if LOG4CXX_HAS_WCHAR_T
-void Logger::trace(const std::wstring& msg, const log4cxx::spi::LocationInfo& location) {
- if (isEnabledFor(log4cxx::Level::getTrace())) {
- forcedLog(log4cxx::Level::getTrace(), msg, location);
- }
-}
-#endif
void Logger::trace(const std::string& msg) {
- if (isEnabledFor(log4cxx::Level::getTrace())) {
- forcedLog(log4cxx::Level::getTrace(), msg);
- }
-}
-
-#if LOG4CXX_HAS_WCHAR_T
-void Logger::trace(const std::wstring& msg) {
- if (isEnabledFor(log4cxx::Level::getTrace())) {
+ if (isTraceEnabled()) {
forcedLog(log4cxx::Level::getTrace(), msg);
}
}
-#endif
void Logger::debug(const std::string& msg, const log4cxx::spi::LocationInfo& location) {
- if (isEnabledFor(log4cxx::Level::getDebug())) {
+ if (isDebugEnabled()) {
forcedLog(log4cxx::Level::getDebug(), msg, location);
}
}
-#if LOG4CXX_HAS_WCHAR_T
-void Logger::debug(const std::wstring& msg, const log4cxx::spi::LocationInfo& location) {
- if (isEnabledFor(log4cxx::Level::getDebug())) {
- forcedLog(log4cxx::Level::getDebug(), msg, location);
+void Logger::debug(const std::string& msg) {
+ if (isDebugEnabled()) {
+ forcedLog(log4cxx::Level::getDebug(), msg);
}
}
-#endif
-void Logger::debug(const std::string& msg) {
- if (isEnabledFor(log4cxx::Level::getDebug())) {
- forcedLog(log4cxx::Level::getDebug(), msg);
+
+void Logger::error(const std::string& msg, const log4cxx::spi::LocationInfo& location) {
+ if (isErrorEnabled()) {
+ forcedLog(log4cxx::Level::getError(), msg, location);
}
}
-#if LOG4CXX_HAS_WCHAR_T
-void Logger::debug(const std::wstring& msg) {
- if (isEnabledFor(log4cxx::Level::getDebug())) {
- forcedLog(log4cxx::Level::getDebug(), msg);
+
+void Logger::error(const std::string& msg) const {
+ if (isErrorEnabled()) {
+ forcedLog(log4cxx::Level::getError(), msg);
}
}
-#endif
-#if LOG4CXX_HAS_WCHAR_T
-void Logger::error(const std::wstring& msg, const log4cxx::spi::LocationInfo& location) {
- if (isEnabledFor(log4cxx::Level::getError())) {
- forcedLog(log4cxx::Level::getError(), msg, location);
+void Logger::fatal(const std::string& msg, const log4cxx::spi::LocationInfo& location) {
+ if (isFatalEnabled()) {
+ forcedLog(log4cxx::Level::getFatal(), msg, location);
}
}
-#endif
-void Logger::error(const std::string& msg, const log4cxx::spi::LocationInfo& location) {
- if (isEnabledFor(log4cxx::Level::getError())) {
- forcedLog(log4cxx::Level::getError(), msg, location);
+void Logger::fatal(const std::string& msg) {
+ if (isFatalEnabled()) {
+ forcedLog(log4cxx::Level::getFatal(), msg);
}
}
-#if LOG4CXX_HAS_WCHAR_T
-void Logger::error(const std::wstring& msg) const {
- if (isEnabledFor(log4cxx::Level::getError())) {
- forcedLog(log4cxx::Level::getError(), msg);
+void Logger::info(const std::string& msg, const log4cxx::spi::LocationInfo& location) {
+ if (isInfoEnabled()) {
+ forcedLog(log4cxx::Level::getInfo(), msg, location);
}
}
-#endif
-void Logger::error(const std::string& msg) const {
- if (isEnabledFor(log4cxx::Level::getError())) {
- forcedLog(log4cxx::Level::getError(), msg);
+void Logger::info(const std::string& msg) {
+ if (isInfoEnabled()) {
+ forcedLog(log4cxx::Level::getInfo(), msg);
}
}
-#if LOG4CXX_HAS_WCHAR_T
-void Logger::fatal(const std::wstring& msg, const log4cxx::spi::LocationInfo& location) {
- if (isEnabledFor(log4cxx::Level::getFatal())) {
- forcedLog(log4cxx::Level::getFatal(), msg, location);
+void Logger::log(const LevelPtr& level1, const std::string& message,
+ const log4cxx::spi::LocationInfo& location) {
+ if (isEnabledFor(level1)) {
+ forcedLog(level1, message, location);
+ }
+}
+
+void Logger::log(const LevelPtr& level1, const std::string& message) {
+ if (isEnabledFor(level1)) {
+ forcedLog(level1, message);
+ }
+}
+
+void Logger::logLS(const LevelPtr& level1, const LogString& message,
+ const log4cxx::spi::LocationInfo& location) {
+ if (isEnabledFor(level1)) {
+ forcedLogLS(level1, message, location);
+ }
+}
+
+void Logger::warn(const std::string& msg, const log4cxx::spi::LocationInfo& location) {
+ if (isWarnEnabled()) {
+ forcedLog(log4cxx::Level::getWarn(), msg, location);
}
}
-#endif
-void Logger::fatal(const std::string& msg, const log4cxx::spi::LocationInfo& location) {
- if (isEnabledFor(log4cxx::Level::getFatal())) {
- forcedLog(log4cxx::Level::getFatal(), msg, location);
+void Logger::warn(const std::string& msg) {
+ if (isWarnEnabled()) {
+ forcedLog(log4cxx::Level::getWarn(), msg);
}
}
-#if LOG4CXX_HAS_WCHAR_T
-void Logger::fatal(const std::wstring& msg) {
- if (isEnabledFor(log4cxx::Level::getFatal())) {
- forcedLog(log4cxx::Level::getFatal(), msg);
+LoggerPtr Logger::getLoggerLS(const LogString& name) {
+ return LogManager::getLoggerLS(name);
+}
+
+
+
+
+#if LOG4CXX_WCHAR_T_API
+void Logger::forcedLog(const LevelPtr& level1, const std::wstring& message,
+ const LocationInfo& location)
+{
+ Pool p;
+ LOG4CXX_DECODE_WCHAR(msg, message);
+ LoggingEventPtr event(new LoggingEvent(this, level1, msg, location));
+ callAppenders(event, p);
+}
+
+void Logger::forcedLog(const LevelPtr& level1, const std::wstring& message) const
+{
+ Pool p;
+ LOG4CXX_DECODE_WCHAR(msg, message);
+ LoggingEventPtr event(new LoggingEvent(this, level1, msg,
+ LocationInfo::getLocationUnavailable()));
+ callAppenders(event, p);
+}
+
+void Logger::getName(std::wstring& rv) const {
+ Transcoder::encode(name, rv);
+}
+
+LoggerPtr Logger::getLogger(const std::wstring& name)
+{
+ return LogManager::getLogger(name);
+}
+
+LoggerPtr Logger::getLogger(const wchar_t* const name)
+{
+ return LogManager::getLogger(name);
+}
+
+void Logger::trace(const std::wstring& msg, const log4cxx::spi::LocationInfo& location) {
+ if (isTraceEnabled()) {
+ forcedLog(log4cxx::Level::getTrace(), msg, location);
+ }
+}
+
+
+void Logger::trace(const std::wstring& msg) {
+ if (isTraceEnabled()) {
+ forcedLog(log4cxx::Level::getTrace(), msg);
+ }
+}
+
+void Logger::debug(const std::wstring& msg, const log4cxx::spi::LocationInfo& location) {
+ if (isDebugEnabled()) {
+ forcedLog(log4cxx::Level::getDebug(), msg, location);
}
}
-#endif
-void Logger::fatal(const std::string& msg) {
- if (isEnabledFor(log4cxx::Level::getFatal())) {
- forcedLog(log4cxx::Level::getFatal(), msg);
+void Logger::debug(const std::wstring& msg) {
+ if (isDebugEnabled()) {
+ forcedLog(log4cxx::Level::getDebug(), msg);
}
}
-#if LOG4CXX_HAS_WCHAR_T
-void Logger::info(const std::wstring& msg, const log4cxx::spi::LocationInfo& location) {
- if (isEnabledFor(log4cxx::Level::getInfo())) {
- forcedLog(log4cxx::Level::getInfo(), msg, location);
+void Logger::error(const std::wstring& msg, const log4cxx::spi::LocationInfo& location) {
+ if (isErrorEnabled()) {
+ forcedLog(log4cxx::Level::getError(), msg, location);
}
}
-#endif
-void Logger::info(const std::string& msg, const log4cxx::spi::LocationInfo& location) {
- if (isEnabledFor(log4cxx::Level::getInfo())) {
- forcedLog(log4cxx::Level::getInfo(), msg, location);
+void Logger::error(const std::wstring& msg) const {
+ if (isErrorEnabled()) {
+ forcedLog(log4cxx::Level::getError(), msg);
}
}
-#if LOG4CXX_HAS_WCHAR_T
-void Logger::info(const std::wstring& msg) {
- if (isEnabledFor(log4cxx::Level::getInfo())) {
- forcedLog(log4cxx::Level::getInfo(), msg);
+void Logger::fatal(const std::wstring& msg, const log4cxx::spi::LocationInfo& location) {
+ if (isFatalEnabled()) {
+ forcedLog(log4cxx::Level::getFatal(), msg, location);
}
}
-#endif
-void Logger::info(const std::string& msg) {
- if (isEnabledFor(log4cxx::Level::getInfo())) {
+void Logger::fatal(const std::wstring& msg) {
+ if (isFatalEnabled()) {
+ forcedLog(log4cxx::Level::getFatal(), msg);
+ }
+}
+
+void Logger::info(const std::wstring& msg, const log4cxx::spi::LocationInfo& location) {
+ if (isInfoEnabled()) {
+ forcedLog(log4cxx::Level::getInfo(), msg, location);
+ }
+}
+
+void Logger::info(const std::wstring& msg) {
+ if (isInfoEnabled()) {
forcedLog(log4cxx::Level::getInfo(), msg);
}
}
-#if LOG4CXX_HAS_WCHAR_T
void Logger::log(const LevelPtr& level1, const std::wstring& message,
const log4cxx::spi::LocationInfo& location) {
if (isEnabledFor(level1)) {
forcedLog(level1, message, location);
}
}
+
+void Logger::log(const LevelPtr& level1, const std::wstring& message) {
+ if (isEnabledFor(level1)) {
+ forcedLog(level1, message);
+ }
+}
+
+void Logger::warn(const std::wstring& msg, const log4cxx::spi::LocationInfo& location) {
+ if (isWarnEnabled()) {
+ forcedLog(log4cxx::Level::getWarn(), msg, location);
+ }
+}
+
+void Logger::warn(const std::wstring& msg) {
+ if (isWarnEnabled()) {
+ forcedLog(log4cxx::Level::getWarn(), msg);
+ }
+}
+
#endif
-void Logger::log(const LevelPtr& level1, const std::string& message,
+
+#if LOG4CXX_UNICHAR_API || LOG4CXX_CFSTRING_API
+void Logger::forcedLog(const LevelPtr& level1, const std::basic_string<UniChar>& message,
+ const LocationInfo& location)
+{
+ Pool p;
+ LOG4CXX_DECODE_UNICHAR(msg, message);
+ LoggingEventPtr event(new LoggingEvent(this, level1, msg, location));
+ callAppenders(event, p);
+}
+
+void Logger::forcedLog(const LevelPtr& level1, const std::basic_string<UniChar>& message) const
+{
+ Pool p;
+ LOG4CXX_DECODE_UNICHAR(msg, message);
+ LoggingEventPtr event(new LoggingEvent(this, level1, msg,
+ LocationInfo::getLocationUnavailable()));
+ callAppenders(event, p);
+}
+#endif
+
+#if LOG4CXX_UNICHAR_API
+void Logger::getName(std::basic_string<UniChar>& rv) const {
+ Transcoder::encode(name, rv);
+}
+
+LoggerPtr Logger::getLogger(const std::basic_string<UniChar>& name)
+{
+ return LogManager::getLogger(name);
+}
+
+void Logger::trace(const std::basic_string<UniChar>& msg, const log4cxx::spi::LocationInfo& location) {
+ if (isTraceEnabled()) {
+ forcedLog(log4cxx::Level::getTrace(), msg, location);
+ }
+}
+
+
+void Logger::trace(const std::basic_string<UniChar>& msg) {
+ if (isTraceEnabled()) {
+ forcedLog(log4cxx::Level::getTrace(), msg);
+ }
+}
+
+void Logger::debug(const std::basic_string<UniChar>& msg, const log4cxx::spi::LocationInfo& location) {
+ if (isDebugEnabled()) {
+ forcedLog(log4cxx::Level::getDebug(), msg, location);
+ }
+}
+
+void Logger::debug(const std::basic_string<UniChar>& msg) {
+ if (isDebugEnabled()) {
+ forcedLog(log4cxx::Level::getDebug(), msg);
+ }
+}
+
+void Logger::error(const std::basic_string<UniChar>& msg, const log4cxx::spi::LocationInfo& location) {
+ if (isErrorEnabled()) {
+ forcedLog(log4cxx::Level::getError(), msg, location);
+ }
+}
+
+void Logger::error(const std::basic_string<UniChar>& msg) {
+ if (isErrorEnabled()) {
+ forcedLog(log4cxx::Level::getError(), msg);
+ }
+}
+
+void Logger::fatal(const std::basic_string<UniChar>& msg, const log4cxx::spi::LocationInfo& location) {
+ if (isFatalEnabled()) {
+ forcedLog(log4cxx::Level::getFatal(), msg, location);
+ }
+}
+
+void Logger::fatal(const std::basic_string<UniChar>& msg) {
+ if (isFatalEnabled()) {
+ forcedLog(log4cxx::Level::getFatal(), msg);
+ }
+}
+
+void Logger::info(const std::basic_string<UniChar>& msg, const log4cxx::spi::LocationInfo& location) {
+ if (isInfoEnabled()) {
+ forcedLog(log4cxx::Level::getInfo(), msg, location);
+ }
+}
+
+void Logger::info(const std::basic_string<UniChar>& msg) {
+ if (isInfoEnabled()) {
+ forcedLog(log4cxx::Level::getInfo(), msg);
+ }
+}
+
+void Logger::log(const LevelPtr& level1, const std::basic_string<UniChar>& message,
const log4cxx::spi::LocationInfo& location) {
if (isEnabledFor(level1)) {
forcedLog(level1, message, location);
}
}
-#if LOG4CXX_HAS_WCHAR_T
-void Logger::log(const LevelPtr& level1, const std::wstring& message) {
+void Logger::log(const LevelPtr& level1, const std::basic_string<UniChar>& message) {
if (isEnabledFor(level1)) {
forcedLog(level1, message);
}
}
+
+void Logger::warn(const std::basic_string<UniChar>& msg, const log4cxx::spi::LocationInfo& location) {
+ if (isWarnEnabled()) {
+ forcedLog(log4cxx::Level::getWarn(), msg, location);
+ }
+}
+
+void Logger::warn(const std::basic_string<UniChar>& msg) {
+ if (isWarnEnabled()) {
+ forcedLog(log4cxx::Level::getWarn(), msg);
+ }
+}
+
#endif
-void Logger::log(const LevelPtr& level1, const std::string& message) {
- if (isEnabledFor(level1)) {
- forcedLog(level1, message);
- }
+
+#if LOG4CXX_CFSTRING_API
+void Logger::forcedLog(const LevelPtr& level1, const CFStringRef& message,
+ const LocationInfo& location)
+{
+ Pool p;
+ LOG4CXX_DECODE_CFSTRING(msg, message);
+ LoggingEventPtr event(new LoggingEvent(this, level1, msg, location));
+ callAppenders(event, p);
}
-void Logger::logLS(const LevelPtr& level1, const LogString& message,
+void Logger::forcedLog(const LevelPtr& level1, const CFStringRef& message) const
+{
+ Pool p;
+ LOG4CXX_DECODE_CFSTRING(msg, message);
+ LoggingEventPtr event(new LoggingEvent(this, level1, msg,
+ LocationInfo::getLocationUnavailable()));
+ callAppenders(event, p);
+}
+
+void Logger::getName(CFStringRef& rv) const {
+ rv = Transcoder::encode(name);
+}
+
+LoggerPtr Logger::getLogger(const CFStringRef& name)
+{
+ return LogManager::getLogger(name);
+}
+
+void Logger::trace(const CFStringRef& msg, const log4cxx::spi::LocationInfo& location) {
+ if (isTraceEnabled()) {
+ forcedLog(log4cxx::Level::getTrace(), msg, location);
+ }
+}
+
+
+void Logger::trace(const CFStringRef& msg) {
+ if (isTraceEnabled()) {
+ forcedLog(log4cxx::Level::getTrace(), msg);
+ }
+}
+
+void Logger::debug(const CFStringRef& msg, const log4cxx::spi::LocationInfo& location) {
+ if (isDebugEnabled()) {
+ forcedLog(log4cxx::Level::getDebug(), msg, location);
+ }
+}
+
+void Logger::debug(const CFStringRef& msg) {
+ if (isDebugEnabled()) {
+ forcedLog(log4cxx::Level::getDebug(), msg);
+ }
+}
+
+void Logger::error(const CFStringRef& msg, const log4cxx::spi::LocationInfo& location) {
+ if (isErrorEnabled()) {
+ forcedLog(log4cxx::Level::getError(), msg, location);
+ }
+}
+
+void Logger::error(const CFStringRef& msg) {
+ if (isErrorEnabled()) {
+ forcedLog(log4cxx::Level::getError(), msg);
+ }
+}
+
+void Logger::fatal(const CFStringRef& msg, const log4cxx::spi::LocationInfo& location) {
+ if (isFatalEnabled()) {
+ forcedLog(log4cxx::Level::getFatal(), msg, location);
+ }
+}
+
+void Logger::fatal(const CFStringRef& msg) {
+ if (isFatalEnabled()) {
+ forcedLog(log4cxx::Level::getFatal(), msg);
+ }
+}
+
+void Logger::info(const CFStringRef& msg, const log4cxx::spi::LocationInfo& location) {
+ if (isInfoEnabled()) {
+ forcedLog(log4cxx::Level::getInfo(), msg, location);
+ }
+}
+
+void Logger::info(const CFStringRef& msg) {
+ if (isInfoEnabled()) {
+ forcedLog(log4cxx::Level::getInfo(), msg);
+ }
+}
+
+void Logger::log(const LevelPtr& level1, const CFStringRef& message,
const log4cxx::spi::LocationInfo& location) {
if (isEnabledFor(level1)) {
- forcedLogLS(level1, message, location);
+ forcedLog(level1, message, location);
}
}
-#if LOG4CXX_HAS_WCHAR_T
-void Logger::warn(const std::wstring& msg, const log4cxx::spi::LocationInfo& location) {
- if (isEnabledFor(log4cxx::Level::getWarn())) {
- forcedLog(log4cxx::Level::getWarn(), msg, location);
- }
+void Logger::log(const LevelPtr& level1, const CFStringRef& message) {
+ if (isEnabledFor(level1)) {
+ forcedLog(level1, message);
+ }
}
-#endif
-void Logger::warn(const std::string& msg, const log4cxx::spi::LocationInfo& location) {
- if (isEnabledFor(log4cxx::Level::getWarn())) {
+void Logger::warn(const CFStringRef& msg, const log4cxx::spi::LocationInfo& location) {
+ if (isWarnEnabled()) {
forcedLog(log4cxx::Level::getWarn(), msg, location);
}
}
-#if LOG4CXX_HAS_WCHAR_T
-void Logger::warn(const std::wstring& msg) {
- if (isEnabledFor(log4cxx::Level::getWarn())) {
+void Logger::warn(const CFStringRef& msg) {
+ if (isWarnEnabled()) {
forcedLog(log4cxx::Level::getWarn(), msg);
}
}
+
#endif
-void Logger::warn(const std::string& msg) {
- if (isEnabledFor(log4cxx::Level::getWarn())) {
- forcedLog(log4cxx::Level::getWarn(), msg);
- }
-}
Modified: logging/log4cxx/trunk/src/main/cpp/loglog.cpp
URL: http://svn.apache.org/viewvc/logging/log4cxx/trunk/src/main/cpp/loglog.cpp?rev=606089&r1=606088&r2=606089&view=diff
==============================================================================
--- logging/log4cxx/trunk/src/main/cpp/loglog.cpp (original)
+++ logging/log4cxx/trunk/src/main/cpp/loglog.cpp Thu Dec 20 18:52:29 2007
@@ -25,6 +25,7 @@
#include <log4cxx/private/log4cxx_private.h>
#include <log4cxx/helpers/synchronized.h>
#include <log4cxx/helpers/aprinitializer.h>
+#include <log4cxx/helpers/systemerrwriter.h>
using namespace log4cxx;
using namespace log4cxx::helpers;
@@ -60,7 +61,7 @@
{
synchronized sync(getInstance().mutex);
debug(msg);
- emit(e.what());
+ emit(e);
}
@@ -76,7 +77,7 @@
{
synchronized sync(getInstance().mutex);
error(msg);
- emit(e.what());
+ emit(e);
}
void LogLog::setQuietMode(bool quietMode1)
@@ -97,21 +98,22 @@
{
synchronized sync(getInstance().mutex);
warn(msg);
- emit(e.what());
+ emit(e);
}
-
-void LogLog::emit(const std::string& msg) {
- std::cerr << "log4cxx: " << msg << std::endl;
-}
-
-#if LOG4CXX_HAS_WCHAR_T
-void LogLog::emit(const std::wstring& msg) {
-#if LOG4CXX_HAS_STD_WCOUT
- std::wcerr << L"log4cxx: " << msg << std::endl;
-#else
- LOG4CXX_ENCODE_CHAR(encoded, msg);
- std::cerr << "log4cxx: " << encoded << std::endl;
-#endif
+void LogLog::emit(const LogString& msg) {
+ LogString out(LOG4CXX_STR("log4cxx: "));
+ out.append(msg);
+ SystemErrWriter::write(out);
+}
+
+void LogLog::emit(const std::exception& ex) {
+ LogString out(LOG4CXX_STR("log4cxx: "));
+ const char* raw = ex.what();
+ if (raw != 0) {
+ Transcoder::decode(raw, out);
+ } else {
+ out.append(LOG4CXX_STR("std::exception::what() == null"));
+ }
+ SystemErrWriter::write(out);
}
-#endif
Modified: logging/log4cxx/trunk/src/main/cpp/logmanager.cpp
URL: http://svn.apache.org/viewvc/logging/log4cxx/trunk/src/main/cpp/logmanager.cpp?rev=606089&r1=606088&r2=606089&view=diff
==============================================================================
--- logging/log4cxx/trunk/src/main/cpp/logmanager.cpp (original)
+++ logging/log4cxx/trunk/src/main/cpp/logmanager.cpp Thu Dec 20 18:52:29 2007
@@ -61,12 +61,12 @@
{
if((LogManager::guard != 0) && (LogManager::guard != guard1))
{
- throw IllegalArgumentException("Attempted to reset the LoggerFactory without possessing the guard.");
+ throw IllegalArgumentException(LOG4CXX_STR("Attempted to reset the LoggerFactory without possessing the guard."));
}
if(selector == 0)
{
- throw IllegalArgumentException("RepositorySelector must be non-null.");
+ throw IllegalArgumentException(LOG4CXX_STR("RepositorySelector must be non-null."));
}
LogManager::guard = guard1;
@@ -96,7 +96,7 @@
/**
Retrieve the appropriate Logger instance.
*/
-LoggerPtr LogManager::getLogger(const LogString& name)
+LoggerPtr LogManager::getLoggerLS(const LogString& name)
{
return getLoggerRepository()->getLogger(name);
}
@@ -104,26 +104,91 @@
/**
Retrieve the appropriate Logger instance.
*/
-LoggerPtr LogManager::getLogger(const LogString& name,
+LoggerPtr LogManager::getLoggerLS(const LogString& name,
const spi::LoggerFactoryPtr& factory)
{
// Delegate the actual manufacturing of the logger to the logger repository.
return getLoggerRepository()->getLogger(name, factory);
}
+LoggerPtr LogManager::getLogger(const std::string& name) {
+ LOG4CXX_DECODE_CHAR(n, name);
+ return getLoggerLS(n);
+}
+
+LoggerPtr LogManager::getLogger(const std::string& name,
+ const spi::LoggerFactoryPtr& factory) {
+ LOG4CXX_DECODE_CHAR(n, name);
+ return getLoggerLS(n, factory);
+}
+
LoggerPtr LogManager::exists(const std::string& name)
{
LOG4CXX_DECODE_CHAR(n, name);
- return getLoggerRepository()->exists(n);
+ return existsLS(n);
+}
+
+#if LOG4CXX_WCHAR_T_API
+LoggerPtr LogManager::getLogger(const std::wstring& name) {
+ LOG4CXX_DECODE_WCHAR(n, name);
+ return getLoggerLS(n);
+}
+
+LoggerPtr LogManager::getLogger(const std::wstring& name,
+ const spi::LoggerFactoryPtr& factory) {
+ LOG4CXX_DECODE_WCHAR(n, name);
+ return getLoggerLS(n, factory);
}
-#if LOG4CXX_HAS_WCHAR_T
LoggerPtr LogManager::exists(const std::wstring& name)
{
LOG4CXX_DECODE_WCHAR(n, name);
- return getLoggerRepository()->exists(n);
+ return existsLS(n);
}
#endif
+
+#if LOG4CXX_UNICHAR_API
+LoggerPtr LogManager::getLogger(const std::basic_string<UniChar>& name) {
+ LOG4CXX_DECODE_UNICHAR(n, name);
+ return getLoggerLS(n);
+}
+
+LoggerPtr LogManager::getLogger(const std::basic_string<UniChar>& name,
+ const spi::LoggerFactoryPtr& factory) {
+ LOG4CXX_DECODE_UNICHAR(n, name);
+ return getLoggerLS(n, factory);
+}
+
+LoggerPtr LogManager::exists(const std::basic_string<UniChar>& name)
+{
+ LOG4CXX_DECODE_UNICHAR(n, name);
+ return existsLS(n);
+}
+#endif
+
+#if LOG4CXX_CFSTRING_API
+LoggerPtr LogManager::getLogger(const CFStringRef& name) {
+ LOG4CXX_DECODE_CFSTRING(n, name);
+ return getLoggerLS(n);
+}
+
+LoggerPtr LogManager::getLogger(const CFStringRef& name,
+ const spi::LoggerFactoryPtr& factory) {
+ LOG4CXX_DECODE_CFSTRING(n, name);
+ return getLoggerLS(n, factory);
+}
+
+LoggerPtr LogManager::exists(const CFStringRef& name)
+{
+ LOG4CXX_DECODE_CFSTRING(n, name);
+ return existsLS(n);
+}
+#endif
+
+LoggerPtr LogManager::existsLS(const LogString& name)
+{
+ return getLoggerRepository()->exists(name);
+}
LoggerList LogManager::getCurrentLoggers()
{
Modified: logging/log4cxx/trunk/src/main/cpp/logstream.cpp
URL: http://svn.apache.org/viewvc/logging/log4cxx/trunk/src/main/cpp/logstream.cpp?rev=606089&r1=606088&r2=606089&view=diff
==============================================================================
--- logging/log4cxx/trunk/src/main/cpp/logstream.cpp (original)
+++ logging/log4cxx/trunk/src/main/cpp/logstream.cpp Thu Dec 20 18:52:29 2007
@@ -21,24 +21,24 @@
#if !defined(LOG4CXX)
#define LOG4CXX 1
#endif
-#include <log4cxx/private/log4cxx_private.h>
+#include <log4cxx/private/log4cxx_private.h>
using namespace log4cxx;
-logstream_base::logstream_ios_base::logstream_ios_base(std::ios_base::fmtflags initval,
- int initsize) {
-#if LOG4CXX_MEMSET_IOS_BASE
- //
- // the destructor for std::ios_base in the MSVC STL
- // releases a pointer that was not initialized in the constructor.
- //
- memset(this, 0, sizeof(*this));
-#endif
- flags(initval);
- precision(initsize);
- width(initsize);
-
-}
+logstream_base::logstream_ios_base::logstream_ios_base(std::ios_base::fmtflags initval,
+ int initsize) {
+#if LOG4CXX_MEMSET_IOS_BASE
+ //
+ // the destructor for std::ios_base in the MSVC STL
+ // releases a pointer that was not initialized in the constructor.
+ //
+ memset(this, 0, sizeof(*this));
+#endif
+ flags(initval);
+ precision(initsize);
+ width(initsize);
+
+}
logstream_base::logstream_base(const LoggerPtr& log,
@@ -77,18 +77,18 @@
return stream;
}
-logstream_base& logstream_base::nop(logstream_base& stream) {
- return stream;
-}
-
+logstream_base& logstream_base::nop(logstream_base& stream) {
+ return stream;
+}
+
void logstream_base::end_message() {
if (isEnabled()) {
log(logger, level, location);
}
erase();
-}
-
-
+}
+
+
int log4cxx::logstream_base::precision(int p) {
get_stream_state(initclear, initset, fillchar, fillset);
@@ -176,210 +176,329 @@
}
}
-
-logstream::logstream(const log4cxx::LoggerPtr& logger,
- const log4cxx::LevelPtr& level) : logstream_base(logger, level), stream(0) {
-}
-
-logstream::logstream(const Ch* loggerName,
- const log4cxx::LevelPtr& level)
- : logstream_base(log4cxx::Logger::getLogger(loggerName), level), stream(0) {
-}
-
-
-logstream::logstream(const std::basic_string<Ch>& loggerName,
- const log4cxx::LevelPtr& level) : logstream_base(log4cxx::Logger::getLogger(loggerName), level), stream(0) {
-}
-
-logstream::~logstream() {
- delete stream;
-}
-
-logstream& logstream::operator<<(logstream_base& (*manip)(logstream_base&)) {
- (*manip)(*this);
- return *this;
-}
-
-logstream& logstream::operator<<(const LevelPtr& level) {
- setLevel(level);
- return *this;
-}
-
-logstream& logstream::operator<<(const log4cxx::spi::LocationInfo& newlocation) {
- setLocation(newlocation);
- return *this;
-}
-
-logstream& logstream::operator>>(const log4cxx::spi::LocationInfo& newlocation) {
- setLocation(newlocation);
- return *this;
-}
-
-logstream& logstream::operator<<(std::ios_base& (*manip)(std::ios_base&)) {
- logstream_base::insert(manip);
- return *this;
-}
-
-logstream::operator std::basic_ostream<char>&() {
- if (stream == 0) {
- stream = new std::basic_stringstream<Ch>();
- refresh_stream_state();
- }
- return *stream;
-}
-
-void logstream::log(LoggerPtr& logger,
- const LevelPtr& level,
- const log4cxx::spi::LocationInfo& location) {
- if (stream != 0) {
- std::basic_string<Ch> msg = stream->str();
- if (!msg.empty()) {
- logger->log(level, msg, location);
- }
- }
-}
-
-
-void logstream::erase() {
- if (stream != 0) {
- std::basic_string<Ch> emptyStr;
- stream->str(emptyStr);
- }
-}
-
-
-void logstream::get_stream_state(std::ios_base& base,
- std::ios_base& mask,
- int& fill,
- bool& fillSet) const {
- if (stream != 0) {
- std::ios_base::fmtflags flags = stream->flags();
- base.flags(flags);
- mask.flags(flags);
- int width = stream->width();
- base.width(width);
- mask.width(width);
- int precision = stream->precision();
- base.precision(precision);
- mask.precision(precision);
- fill = stream->fill();
- fillSet = true;
- }
-}
-
-void logstream::refresh_stream_state() {
- if (stream != 0) {
- int fillchar;
- if(logstream_base::set_stream_state(*stream, fillchar)) {
- stream->fill(fillchar);
- }
- }
-}
-
-
-#if LOG4CXX_HAS_WCHAR_T
-
-wlogstream::wlogstream(const log4cxx::LoggerPtr& logger,
- const log4cxx::LevelPtr& level) : logstream_base(logger, level), stream(0) {
-}
-
-wlogstream::wlogstream(const Ch* loggerName,
- const log4cxx::LevelPtr& level)
- : logstream_base(log4cxx::Logger::getLogger(loggerName), level), stream(0) {
-}
-
-
-wlogstream::wlogstream(const std::basic_string<Ch>& loggerName,
- const log4cxx::LevelPtr& level) : logstream_base(log4cxx::Logger::getLogger(loggerName), level), stream(0) {
-}
-
-wlogstream::~wlogstream() {
- delete stream;
-}
-
-wlogstream& wlogstream::operator<<(logstream_base& (*manip)(logstream_base&)) {
- (*manip)(*this);
- return *this;
-}
-
-wlogstream& wlogstream::operator<<(const LevelPtr& level) {
- setLevel(level);
- return *this;
-}
-
-wlogstream& wlogstream::operator<<(const log4cxx::spi::LocationInfo& newlocation) {
- setLocation(newlocation);
- return *this;
-}
-
-wlogstream& wlogstream::operator>>(const log4cxx::spi::LocationInfo& newlocation) {
- setLocation(newlocation);
- return *this;
-}
-
-
-
-
-wlogstream& wlogstream::operator<<(std::ios_base& (*manip)(std::ios_base&)) {
- logstream_base::insert(manip);
- return *this;
-}
-
-wlogstream::operator std::basic_ostream<wchar_t>&() {
- if (stream == 0) {
- stream = new std::basic_stringstream<Ch>();
- refresh_stream_state();
- }
- return *stream;
-}
-
-void wlogstream::log(LoggerPtr& logger,
- const LevelPtr& level,
- const log4cxx::spi::LocationInfo& location) {
- if (stream != 0) {
- std::basic_string<Ch> msg = stream->str();
- if (!msg.empty()) {
- logger->log(level, msg, location);
- }
- }
-}
-
-
-void wlogstream::erase() {
- if (stream != 0) {
- std::basic_string<Ch> emptyStr;
- stream->str(emptyStr);
- }
-}
-
-
-void wlogstream::get_stream_state(std::ios_base& base,
- std::ios_base& mask,
- int& fill,
- bool& fillSet) const {
- if (stream != 0) {
- std::ios_base::fmtflags flags = stream->flags();
- base.flags(flags);
- mask.flags(flags);
- int width = stream->width();
- base.width(width);
- mask.width(width);
- int precision = stream->precision();
- base.precision(precision);
- mask.precision(precision);
- fill = stream->fill();
- fillSet = true;
- }
-}
-
-void wlogstream::refresh_stream_state() {
- if (stream != 0) {
- int fillchar;
- if(logstream_base::set_stream_state(*stream, fillchar)) {
- stream->fill(fillchar);
- }
- }
-}
-#endif
-
-
+
+logstream::logstream(const log4cxx::LoggerPtr& logger,
+ const log4cxx::LevelPtr& level) : logstream_base(logger, level), stream(0) {
+}
+
+logstream::logstream(const Ch* loggerName,
+ const log4cxx::LevelPtr& level)
+ : logstream_base(log4cxx::Logger::getLogger(loggerName), level), stream(0) {
+}
+
+
+logstream::logstream(const std::basic_string<Ch>& loggerName,
+ const log4cxx::LevelPtr& level) : logstream_base(log4cxx::Logger::getLogger(loggerName), level), stream(0) {
+}
+
+logstream::~logstream() {
+ delete stream;
+}
+
+logstream& logstream::operator<<(logstream_base& (*manip)(logstream_base&)) {
+ (*manip)(*this);
+ return *this;
+}
+
+logstream& logstream::operator<<(const LevelPtr& level) {
+ setLevel(level);
+ return *this;
+}
+
+logstream& logstream::operator<<(const log4cxx::spi::LocationInfo& newlocation) {
+ setLocation(newlocation);
+ return *this;
+}
+
+logstream& logstream::operator>>(const log4cxx::spi::LocationInfo& newlocation) {
+ setLocation(newlocation);
+ return *this;
+}
+
+logstream& logstream::operator<<(std::ios_base& (*manip)(std::ios_base&)) {
+ logstream_base::insert(manip);
+ return *this;
+}
+
+logstream::operator std::basic_ostream<char>&() {
+ if (stream == 0) {
+ stream = new std::basic_stringstream<Ch>();
+ refresh_stream_state();
+ }
+ return *stream;
+}
+
+void logstream::log(LoggerPtr& logger,
+ const LevelPtr& level,
+ const log4cxx::spi::LocationInfo& location) {
+ if (stream != 0) {
+ std::basic_string<Ch> msg = stream->str();
+ if (!msg.empty()) {
+ logger->log(level, msg, location);
+ }
+ }
+}
+
+
+void logstream::erase() {
+ if (stream != 0) {
+ std::basic_string<Ch> emptyStr;
+ stream->str(emptyStr);
+ }
+}
+
+
+void logstream::get_stream_state(std::ios_base& base,
+ std::ios_base& mask,
+ int& fill,
+ bool& fillSet) const {
+ if (stream != 0) {
+ std::ios_base::fmtflags flags = stream->flags();
+ base.flags(flags);
+ mask.flags(flags);
+ int width = stream->width();
+ base.width(width);
+ mask.width(width);
+ int precision = stream->precision();
+ base.precision(precision);
+ mask.precision(precision);
+ fill = stream->fill();
+ fillSet = true;
+ }
+}
+
+void logstream::refresh_stream_state() {
+ if (stream != 0) {
+ int fillchar;
+ if(logstream_base::set_stream_state(*stream, fillchar)) {
+ stream->fill(fillchar);
+ }
+ }
+}
+
+
+#if LOG4CXX_WCHAR_T_API
+
+wlogstream::wlogstream(const log4cxx::LoggerPtr& logger,
+ const log4cxx::LevelPtr& level) : logstream_base(logger, level), stream(0) {
+}
+
+wlogstream::wlogstream(const Ch* loggerName,
+ const log4cxx::LevelPtr& level)
+ : logstream_base(log4cxx::Logger::getLogger(loggerName), level), stream(0) {
+}
+
+
+wlogstream::wlogstream(const std::basic_string<Ch>& loggerName,
+ const log4cxx::LevelPtr& level) : logstream_base(log4cxx::Logger::getLogger(loggerName), level), stream(0) {
+}
+
+wlogstream::~wlogstream() {
+ delete stream;
+}
+
+wlogstream& wlogstream::operator<<(logstream_base& (*manip)(logstream_base&)) {
+ (*manip)(*this);
+ return *this;
+}
+
+wlogstream& wlogstream::operator<<(const LevelPtr& level) {
+ setLevel(level);
+ return *this;
+}
+
+wlogstream& wlogstream::operator<<(const log4cxx::spi::LocationInfo& newlocation) {
+ setLocation(newlocation);
+ return *this;
+}
+
+wlogstream& wlogstream::operator>>(const log4cxx::spi::LocationInfo& newlocation) {
+ setLocation(newlocation);
+ return *this;
+}
+
+
+
+
+wlogstream& wlogstream::operator<<(std::ios_base& (*manip)(std::ios_base&)) {
+ logstream_base::insert(manip);
+ return *this;
+}
+
+wlogstream::operator std::basic_ostream<wchar_t>&() {
+ if (stream == 0) {
+ stream = new std::basic_stringstream<Ch>();
+ refresh_stream_state();
+ }
+ return *stream;
+}
+
+void wlogstream::log(LoggerPtr& logger,
+ const LevelPtr& level,
+ const log4cxx::spi::LocationInfo& location) {
+ if (stream != 0) {
+ std::basic_string<Ch> msg = stream->str();
+ if (!msg.empty()) {
+ logger->log(level, msg, location);
+ }
+ }
+}
+
+
+void wlogstream::erase() {
+ if (stream != 0) {
+ std::basic_string<Ch> emptyStr;
+ stream->str(emptyStr);
+ }
+}
+
+
+void wlogstream::get_stream_state(std::ios_base& base,
+ std::ios_base& mask,
+ int& fill,
+ bool& fillSet) const {
+ if (stream != 0) {
+ std::ios_base::fmtflags flags = stream->flags();
+ base.flags(flags);
+ mask.flags(flags);
+ int width = stream->width();
+ base.width(width);
+ mask.width(width);
+ int precision = stream->precision();
+ base.precision(precision);
+ mask.precision(precision);
+ fill = stream->fill();
+ fillSet = true;
+ }
+}
+
+void wlogstream::refresh_stream_state() {
+ if (stream != 0) {
+ int fillchar;
+ if(logstream_base::set_stream_state(*stream, fillchar)) {
+ stream->fill(fillchar);
+ }
+ }
+}
+#endif
+
+#if LOG4CXX_UNICHAR_API
+ulogstream::ulogstream(const Ch* loggerName,
+ const log4cxx::LevelPtr& level)
+ : logstream_base(log4cxx::Logger::getLogger(loggerName), level), stream(0) {
+}
+
+
+ulogstream::ulogstream(const std::basic_string<Ch>& loggerName,
+ const log4cxx::LevelPtr& level) : logstream_base(log4cxx::Logger::getLogger(loggerName), level), stream(0) {
+}
+#endif
+
+#if LOG4CXX_CFSTRING_API
+ulogstream::ulogstream(const CFStringRef& loggerName,
+ const log4cxx::LevelPtr& level)
+ : logstream_base(log4cxx::Logger::getLogger(loggerName), level), stream(0) {
+}
+
+#endif
+
+
+#if LOG4CXX_UNICHAR_API || LOG4CXX_CFSTRING_API
+
+ulogstream::ulogstream(const log4cxx::LoggerPtr& logger,
+ const log4cxx::LevelPtr& level) : logstream_base(logger, level), stream(0) {
+}
+
+
+
+ulogstream::~ulogstream() {
+ delete stream;
+}
+
+ulogstream& ulogstream::operator<<(logstream_base& (*manip)(logstream_base&)) {
+ (*manip)(*this);
+ return *this;
+}
+
+ulogstream& ulogstream::operator<<(const LevelPtr& level) {
+ setLevel(level);
+ return *this;
+}
+
+ulogstream& ulogstream::operator<<(const log4cxx::spi::LocationInfo& newlocation) {
+ setLocation(newlocation);
+ return *this;
+}
+
+ulogstream& ulogstream::operator>>(const log4cxx::spi::LocationInfo& newlocation) {
+ setLocation(newlocation);
+ return *this;
+}
+
+
+
+
+ulogstream& ulogstream::operator<<(std::ios_base& (*manip)(std::ios_base&)) {
+ logstream_base::insert(manip);
+ return *this;
+}
+
+ulogstream::operator std::basic_ostream<UniChar>&() {
+ if (stream == 0) {
+ stream = new std::basic_stringstream<Ch>();
+ refresh_stream_state();
+ }
+ return *stream;
+}
+
+void ulogstream::log(LoggerPtr& logger,
+ const LevelPtr& level,
+ const log4cxx::spi::LocationInfo& location) {
+ if (stream != 0) {
+ std::basic_string<Ch> msg = stream->str();
+ if (!msg.empty() && logger->isEnabledFor(level)) {
+ LOG4CXX_DECODE_UNICHAR(lsmsg, msg);
+ logger->forcedLogLS(level, lsmsg, location);
+ }
+ }
+}
+
+
+void ulogstream::erase() {
+ if (stream != 0) {
+ std::basic_string<Ch> emptyStr;
+ stream->str(emptyStr);
+ }
+}
+
+
+void ulogstream::get_stream_state(std::ios_base& base,
+ std::ios_base& mask,
+ int& fill,
+ bool& fillSet) const {
+ if (stream != 0) {
+ std::ios_base::fmtflags flags = stream->flags();
+ base.flags(flags);
+ mask.flags(flags);
+ int width = stream->width();
+ base.width(width);
+ mask.width(width);
+ int precision = stream->precision();
+ base.precision(precision);
+ mask.precision(precision);
+ fill = stream->fill();
+ fillSet = true;
+ }
+}
+
+void ulogstream::refresh_stream_state() {
+ if (stream != 0) {
+ int fillchar;
+ if(logstream_base::set_stream_state(*stream, fillchar)) {
+ stream->fill(fillchar);
+ }
+ }
+}
+#endif
+
+
Modified: logging/log4cxx/trunk/src/main/cpp/mdc.cpp
URL: http://svn.apache.org/viewvc/logging/log4cxx/trunk/src/main/cpp/mdc.cpp?rev=606089&r1=606088&r2=606089&view=diff
==============================================================================
--- logging/log4cxx/trunk/src/main/cpp/mdc.cpp (original)
+++ logging/log4cxx/trunk/src/main/cpp/mdc.cpp Thu Dec 20 18:52:29 2007
@@ -19,39 +19,38 @@
#include <log4cxx/helpers/transcoder.h>
#include <log4cxx/helpers/threadspecificdata.h>
+#if LOG4CXX_CFSTRING_API
+#include <CoreFoundation/CFString.h>
+#endif
+
+
using namespace log4cxx;
using namespace log4cxx::helpers;
-MDC::MDC(const LogString& key1, const LogString& value) : key(key1)
+MDC::MDC(const std::string& key1, const std::string& value) : key()
{
- put(key1, value);
+ Transcoder::decode(key1, key);
+ LOG4CXX_DECODE_CHAR(v, value);
+ putLS(key, v);
}
MDC::~MDC()
{
- remove(key);
+ LogString prevVal;
+ remove(key, prevVal);
}
-void MDC::putLogString(const LogString& key, const LogString& value)
+void MDC::putLS(const LogString& key, const LogString& value)
{
Map& map = ThreadSpecificData::getCurrentThreadMap();
map[key] = value;
}
-#if LOG4CXX_HAS_WCHAR_T
-void MDC::put(const std::wstring& key, const std::wstring& value)
-{
- LOG4CXX_DECODE_WCHAR(lkey, key);
- LOG4CXX_DECODE_WCHAR(lvalue, value);
- putLogString(lkey, lvalue);
-}
-#endif
-
void MDC::put(const std::string& key, const std::string& value)
{
LOG4CXX_DECODE_CHAR(lkey, key);
LOG4CXX_DECODE_CHAR(lvalue, value);
- putLogString(lkey, lvalue);
+ putLS(lkey, lvalue);
}
bool MDC::get(const LogString& key, LogString& value)
@@ -77,19 +76,6 @@
return std::string();
}
-#if LOG4CXX_HAS_WCHAR_T
-std::wstring MDC::get(const std::wstring& key)
-{
- LOG4CXX_DECODE_WCHAR(lkey, key);
- LogString lvalue;
- if (get(lkey, lvalue)) {
- LOG4CXX_ENCODE_WCHAR(value, lvalue);
- return value;
- }
- return std::wstring();
-}
-#endif
-
bool MDC::remove(const LogString& key, LogString& value)
{
Map::iterator it;
@@ -114,7 +100,41 @@
return std::string();
}
-#if LOG4CXX_HAS_WCHAR_T
+
+void MDC::clear()
+{
+ Map& map = ThreadSpecificData::getCurrentThreadMap();
+ map.erase(map.begin(), map.end());
+}
+
+
+#if LOG4CXX_WCHAR_T_API
+MDC::MDC(const std::wstring& key1, const std::wstring& value) : key()
+{
+ Transcoder::decode(key1, key);
+ LOG4CXX_DECODE_WCHAR(v, value);
+ putLS(key, v);
+}
+
+std::wstring MDC::get(const std::wstring& key)
+{
+ LOG4CXX_DECODE_WCHAR(lkey, key);
+ LogString lvalue;
+ if (get(lkey, lvalue)) {
+ LOG4CXX_ENCODE_WCHAR(value, lvalue);
+ return value;
+ }
+ return std::wstring();
+}
+
+void MDC::put(const std::wstring& key, const std::wstring& value)
+{
+ LOG4CXX_DECODE_WCHAR(lkey, key);
+ LOG4CXX_DECODE_WCHAR(lvalue, value);
+ putLS(lkey, lvalue);
+}
+
+
std::wstring MDC::remove(const std::wstring& key)
{
LOG4CXX_DECODE_WCHAR(lkey, key);
@@ -127,9 +147,80 @@
}
#endif
-void MDC::clear()
+#if LOG4CXX_UNICHAR_API
+MDC::MDC(const std::basic_string<UniChar>& key1, const std::basic_string<UniChar>& value) {
+ Transcoder::decode(key1, key);
+ LOG4CXX_DECODE_UNICHAR(v, value);
+ putLS(key, v);
+}
+
+std::basic_string<UniChar> MDC::get(const std::basic_string<UniChar>& key)
{
- Map& map = ThreadSpecificData::getCurrentThreadMap();
- map.erase(map.begin(), map.end());
+ LOG4CXX_DECODE_UNICHAR(lkey, key);
+ LogString lvalue;
+ if (get(lkey, lvalue)) {
+ LOG4CXX_ENCODE_UNICHAR(value, lvalue);
+ return value;
+ }
+ return std::basic_string<UniChar>();
+}
+
+void MDC::put(const std::basic_string<UniChar>& key, const std::basic_string<UniChar>& value)
+{
+ LOG4CXX_DECODE_UNICHAR(lkey, key);
+ LOG4CXX_DECODE_UNICHAR(lvalue, value);
+ putLS(lkey, lvalue);
+}
+
+
+std::basic_string<UniChar> MDC::remove(const std::basic_string<UniChar>& key)
+{
+ LOG4CXX_DECODE_UNICHAR(lkey, key);
+ LogString lvalue;
+ if (remove(lkey, lvalue)) {
+ LOG4CXX_ENCODE_UNICHAR(value, lvalue);
+ return value;
+ }
+ return std::basic_string<UniChar>();
}
+#endif
+
+#if LOG4CXX_CFSTRING_API
+
+MDC::MDC(const CFStringRef& key1, const CFStringRef& value) {
+ Transcoder::decode(key1, key);
+ LOG4CXX_DECODE_CFSTRING(v, value);
+ putLS(key, v);
+}
+
+CFStringRef MDC::get(const CFStringRef& key)
+{
+ LOG4CXX_DECODE_CFSTRING(lkey, key);
+ LogString lvalue;
+ if (get(lkey, lvalue)) {
+ LOG4CXX_ENCODE_CFSTRING(value, lvalue);
+ return value;
+ }
+ return CFSTR("");
+}
+
+void MDC::put(const CFStringRef& key, const CFStringRef& value)
+{
+ LOG4CXX_DECODE_CFSTRING(lkey, key);
+ LOG4CXX_DECODE_CFSTRING(lvalue, value);
+ putLS(lkey, lvalue);
+}
+
+
+CFStringRef MDC::remove(const CFStringRef& key)
+{
+ LOG4CXX_DECODE_CFSTRING(lkey, key);
+ LogString lvalue;
+ if (remove(lkey, lvalue)) {
+ LOG4CXX_ENCODE_CFSTRING(value, lvalue);
+ return value;
+ }
+ return CFSTR("");
+}
+#endif