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/09/25 08:00:10 UTC
svn commit: r579082 - in /logging/log4cxx/trunk/src/main:
cpp/messagebuffer.cpp include/log4cxx/helpers/messagebuffer.h
include/log4cxx/logger.h
Author: carnold
Date: Mon Sep 24 23:00:09 2007
New Revision: 579082
URL: http://svn.apache.org/viewvc?rev=579082&view=rev
Log:
LOGCXX-18: Second iteration, drop use of operator+
Modified:
logging/log4cxx/trunk/src/main/cpp/messagebuffer.cpp
logging/log4cxx/trunk/src/main/include/log4cxx/helpers/messagebuffer.h
logging/log4cxx/trunk/src/main/include/log4cxx/logger.h
Modified: logging/log4cxx/trunk/src/main/cpp/messagebuffer.cpp
URL: http://svn.apache.org/viewvc/logging/log4cxx/trunk/src/main/cpp/messagebuffer.cpp?rev=579082&r1=579081&r2=579082&view=diff
==============================================================================
--- logging/log4cxx/trunk/src/main/cpp/messagebuffer.cpp (original)
+++ logging/log4cxx/trunk/src/main/cpp/messagebuffer.cpp Mon Sep 24 23:00:09 2007
@@ -19,45 +19,20 @@
using namespace log4cxx::helpers;
-MessageBuffer::MessageBuffer() {
+CharMessageBuffer::CharMessageBuffer() {
stream = 0;
-#if LOG4CXX_HAS_WCHAR_T
- wbuf = 0;
-#endif
}
-MessageBuffer::~MessageBuffer() {
+CharMessageBuffer::~CharMessageBuffer() {
delete stream;
-#if LOG4CXX_HAS_WCHAR_T
- delete wbuf;
-#endif
-}
-
-MessageBuffer& MessageBuffer::operator+(const std::string& msg) {
- buf.assign(msg);
- return *this;
-}
-
-MessageBuffer& MessageBuffer::operator+(const char* msg) {
- if (0 == msg) {
- buf.assign("null");
- } else {
- buf.assign(msg);
- }
- return *this;
}
-MessageBuffer& MessageBuffer::operator+(const char msg) {
- buf.assign(1, msg);
- return *this;
-}
-
-MessageBuffer& MessageBuffer::operator<<(const std::string& msg) {
+CharMessageBuffer& CharMessageBuffer::operator<<(const std::string& msg) {
buf.append(msg);
return *this;
}
-MessageBuffer& MessageBuffer::operator<<(const char* msg) {
+CharMessageBuffer& CharMessageBuffer::operator<<(const char* msg) {
if (0 == msg) {
buf.append("null");
} else {
@@ -66,20 +41,29 @@
return *this;
}
-MessageBuffer& MessageBuffer::operator<<(const char msg) {
+CharMessageBuffer& CharMessageBuffer::operator<<(const char msg) {
buf.append(1, msg);
return *this;
}
-const std::string& MessageBuffer::str(const MessageBuffer&) const {
+const std::string& CharMessageBuffer::str(const MessageBuffer&) const {
return buf;
}
-std::string MessageBuffer::str(const std::ostream&) const {
+std::string CharMessageBuffer::str(const std::ostream&) const {
return stream->str();
}
+
#if LOG4CXX_HAS_WCHAR_T
+MessageBuffer::MessageBuffer() {
+ wbuf = 0;
+}
+
+MessageBuffer::~MessageBuffer() {
+ delete wbuf;
+}
+
WideMessageBuffer& MessageBuffer::operator+(const std::wstring& msg) {
wbuf = new WideMessageBuffer(msg);
return *wbuf;
Modified: logging/log4cxx/trunk/src/main/include/log4cxx/helpers/messagebuffer.h
URL: http://svn.apache.org/viewvc/logging/log4cxx/trunk/src/main/include/log4cxx/helpers/messagebuffer.h?rev=579082&r1=579081&r2=579082&view=diff
==============================================================================
--- logging/log4cxx/trunk/src/main/include/log4cxx/helpers/messagebuffer.h (original)
+++ logging/log4cxx/trunk/src/main/include/log4cxx/helpers/messagebuffer.h Mon Sep 24 23:00:09 2007
@@ -25,6 +25,31 @@
namespace log4cxx {
namespace helpers {
+
+ class LOG4CXX_EXPORT CharMessageBuffer {
+ public:
+ CharMessageBuffer();
+ ~CharMessageBuffer();
+
+ CharMessageBuffer& operator<<(const std::string& msg);
+ CharMessageBuffer& operator<<(const char* msg);
+ CharMessageBuffer& operator<<(const char msg);
+
+ template<class T>
+ std::ostream& operator<<(T arg) {
+ stream = new std::ostringstream();
+ return *stream << buf << arg;
+ }
+
+ const std::string& str(const CharMessageBuffer&) const;
+ std::string str(const std::ostream&) const;
+
+ private:
+ std::string buf;
+ std::ostringstream* stream;
+ };
+
+
#if LOG4CXX_HAS_WCHAR_T
class LOG4CXX_EXPORT WideMessageBuffer {
@@ -51,51 +76,25 @@
std::wstring buf;
std::wostringstream* stream;
};
-#endif
-
- class LOG4CXX_EXPORT MessageBuffer {
+
+ class LOG4CXX_EXPORT MessageBuffer : public CharMessageBuffer {
public:
MessageBuffer();
~MessageBuffer();
- MessageBuffer& operator+(const std::string& msg);
- MessageBuffer& operator+(const char* msg);
- MessageBuffer& operator+(const char msg);
-
- MessageBuffer& operator<<(const std::string& msg);
- MessageBuffer& operator<<(const char* msg);
- MessageBuffer& operator<<(const char msg);
-
- template<class T>
- std::ostream& operator<<(T arg) {
- stream = new std::ostringstream();
- return *stream << buf << arg;
- }
-
- template<class T>
- std::ostream& operator+(T arg) {
- return operator<<(arg);
- }
-
- const std::string& str(const MessageBuffer&) const;
- std::string str(const std::ostream&) const;
-
-#if LOG4CXX_HAS_WCHAR_T
- WideMessageBuffer& operator+(const std::wstring& msg);
- WideMessageBuffer& operator+(const wchar_t* msg);
- WideMessageBuffer& operator+(const wchar_t msg);
+ WideMessageBuffer& operator<<(const std::wstring& msg);
+ WideMessageBuffer& operator<<(const wchar_t* msg);
+ WideMessageBuffer& operator<<(const wchar_t msg);
const std::wstring& str(const WideMessageBuffer&) const;
std::wstring str(const std::wostream&) const;
-#endif
private:
- std::string buf;
- std::ostringstream* stream;
-#if LOG4CXX_HAS_WCHAR_T
WideMessageBuffer* wbuf;
-#endif
};
+#else
+typedef class CharMessageBuffer MessageBuffer;
+#endif
}
}
Modified: logging/log4cxx/trunk/src/main/include/log4cxx/logger.h
URL: http://svn.apache.org/viewvc/logging/log4cxx/trunk/src/main/include/log4cxx/logger.h?rev=579082&r1=579081&r2=579082&view=diff
==============================================================================
--- logging/log4cxx/trunk/src/main/include/log4cxx/logger.h (original)
+++ logging/log4cxx/trunk/src/main/include/log4cxx/logger.h Mon Sep 24 23:00:09 2007
@@ -652,7 +652,7 @@
#define LOG4CXX_LOG(logger, level, message) { \
if (logger->isEnabledFor(level)) {\
::log4cxx::helpers::MessageBuffer buf; \
- logger->forcedLog(level, buf.str(buf + message), LOG4CXX_LOCATION); } }
+ logger->forcedLog(level, buf.str(buf << message), LOG4CXX_LOCATION); } }
/**
Logs a message to a specified logger with the DEBUG level.
@@ -663,7 +663,7 @@
#define LOG4CXX_DEBUG(logger, message) { \
if (LOG4CXX_UNLIKELY(logger->isDebugEnabled())) {\
::log4cxx::helpers::MessageBuffer buf; \
- logger->forcedLog(::log4cxx::Level::getDebug(), buf.str(buf + message), LOG4CXX_LOCATION); }}
+ logger->forcedLog(::log4cxx::Level::getDebug(), buf.str(buf << message), LOG4CXX_LOCATION); }}
/**
Logs a message to a specified logger with the TRACE level.
@@ -674,7 +674,7 @@
#define LOG4CXX_TRACE(logger, message) { \
if (LOG4CXX_UNLIKELY(logger->isTraceEnabled())) {\
::log4cxx::helpers::MessageBuffer buf; \
- logger->forcedLog(::log4cxx::Level::getTrace(), buf.str(buf + message), LOG4CXX_LOCATION); }}
+ logger->forcedLog(::log4cxx::Level::getTrace(), buf.str(buf << message), LOG4CXX_LOCATION); }}
/**
@@ -686,7 +686,7 @@
#define LOG4CXX_INFO(logger, message) { \
if (logger->isInfoEnabled()) {\
::log4cxx::helpers::MessageBuffer buf; \
- logger->forcedLog(::log4cxx::Level::getInfo(), buf.str(buf + message), LOG4CXX_LOCATION); }}
+ logger->forcedLog(::log4cxx::Level::getInfo(), buf.str(buf << message), LOG4CXX_LOCATION); }}
/**
Logs a message to a specified logger with the WARN level.
@@ -697,7 +697,7 @@
#define LOG4CXX_WARN(logger, message) { \
if (logger->isWarnEnabled()) {\
::log4cxx::helpers::MessageBuffer buf; \
- logger->forcedLog(::log4cxx::Level::getWarn(), buf.str(buf + message), LOG4CXX_LOCATION); }}
+ logger->forcedLog(::log4cxx::Level::getWarn(), buf.str(buf << message), LOG4CXX_LOCATION); }}
/**
Logs a message to a specified logger with the ERROR level.
@@ -708,7 +708,7 @@
#define LOG4CXX_ERROR(logger, message) { \
if (logger->isErrorEnabled()) {\
::log4cxx::helpers::MessageBuffer buf; \
- logger->forcedLog(::log4cxx::Level::getError(), buf.str(buf + message), LOG4CXX_LOCATION); }}
+ logger->forcedLog(::log4cxx::Level::getError(), buf.str(buf << message), LOG4CXX_LOCATION); }}
/**
Logs a error if the condition is not true.
@@ -720,7 +720,7 @@
#define LOG4CXX_ASSERT(logger, condition, message) { \
if (!(condition) && logger->isErrorEnabled()) {\
::log4cxx::helpers::MessageBuffer buf; \
- logger->forcedLog(::log4cxx::Level::getError(), buf.str(buf + message), LOG4CXX_LOCATION); }}
+ logger->forcedLog(::log4cxx::Level::getError(), buf.str(buf << message), LOG4CXX_LOCATION); }}
/**
@@ -732,7 +732,7 @@
#define LOG4CXX_FATAL(logger, message) { \
if (logger->isFatalEnabled()) {\
::log4cxx::helpers::MessageBuffer buf; \
- logger->forcedLog(::log4cxx::Level::getFatal(), buf.str(buf + message), LOG4CXX_LOCATION); }}
+ logger->forcedLog(::log4cxx::Level::getFatal(), buf.str(buf << message), LOG4CXX_LOCATION); }}
/**
Logs a localized message with no parameter.