diff options
Diffstat (limited to 'cpp/common/utils')
-rw-r--r-- | cpp/common/utils/inc/logger.h | 82 | ||||
-rw-r--r-- | cpp/common/utils/src/Makefile | 9 | ||||
-rw-r--r-- | cpp/common/utils/src/logger.cpp | 209 | ||||
-rw-r--r-- | cpp/common/utils/src/logger_test.cpp | 78 |
4 files changed, 3 insertions, 375 deletions
diff --git a/cpp/common/utils/inc/logger.h b/cpp/common/utils/inc/logger.h deleted file mode 100644 index 8a57854476..0000000000 --- a/cpp/common/utils/inc/logger.h +++ /dev/null @@ -1,82 +0,0 @@ -/* - * - * Copyright (c) 2006 The Apache Software Foundation - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ -/********************************************************************* -* -* NOTE: This is a lightweight logging class intended for debugging and -* verification purposes only. -* -* DO NOT USE FOR PRODUCT DEVELOPMENT - Rather, use an agreed upon -* established logging class (such as Apache's log4cxx) for product -* development purposes. -* -*********************************************************************/ - -#ifndef __LOGGER__ -#define __LOGGER__ - -#include <fstream> -#include <iostream> - -namespace qpid { -namespace utils { - -class Logger : public std::ofstream -{ - private: - bool echo_flag; - bool timestamp_flag; - bool eol_flag; - char buff[128]; // Buffer for writing formatted strings - - void write_timestamp(); - - public: - Logger(const char* filename, const bool append); - Logger(std::string& filename, const bool append); - ~Logger(); - - bool getEchoFlag() {return echo_flag;} - bool setEchoFlag(const bool _echo_flag) {echo_flag = _echo_flag;} - bool getTimestampFlag() {return timestamp_flag;} - bool setTimestampFlag(const bool _timestamp_flag) {timestamp_flag = _timestamp_flag;} - - void log(const char* message); - void log(const char* message, const bool echo); - void log(const char* message, const bool echo, const bool timestamp); - - Logger& operator<< (bool b); - Logger& operator<< (const short s); - Logger& operator<< (const unsigned short us); - Logger& operator<< (const int i); - Logger& operator<< (const unsigned int ui); - Logger& operator<< (const long l); - Logger& operator<< (const unsigned long ul); - Logger& operator<< (const long long l); - Logger& operator<< (const unsigned long long ul); - Logger& operator<< (const float f); - Logger& operator<< (const double d); - Logger& operator<< (const long double ld); - Logger& operator<< (const char* cstr); - Logger& operator<< (const std::string& str); -}; - -} -} - - -#endif diff --git a/cpp/common/utils/src/Makefile b/cpp/common/utils/src/Makefile index 0185ab9975..b0ab76973c 100644 --- a/cpp/common/utils/src/Makefile +++ b/cpp/common/utils/src/Makefile @@ -13,13 +13,10 @@ # See the License for the specific language governing permissions and # limitations under the License. # -##### Options ##### -QPID_HOME = ../../../.. - -include ${QPID_HOME}/cpp/options.mk -##### Compiler flags ##### -CXXFLAGS = -I ../inc -I ${APR_HOME}/include/apr-1/ +QPID_HOME = ../../../.. +include $(QPID_HOME)/cpp/options.mk +INCLUDES=$(TEST_INCLUDES) ##### Targets ##### # Add additional source files to SOURCE LIST to include them in the build. diff --git a/cpp/common/utils/src/logger.cpp b/cpp/common/utils/src/logger.cpp deleted file mode 100644 index 603fa6574e..0000000000 --- a/cpp/common/utils/src/logger.cpp +++ /dev/null @@ -1,209 +0,0 @@ -/* - * - * Copyright (c) 2006 The Apache Software Foundation - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ -/********************************************************************* -* -* NOTE: This is a lightweight logging class intended for debugging and -* verification purposes only. -* -* DO NOT USE FOR PRODUCT DEVELOPMENT - Rather, use an agreed upon -* established logging class (such as Apache's log4cxx) for product -* development purposes. -* -*********************************************************************/ - -#include <iostream> -#include <ostream> -#include <string.h> -#include "apr_time.h" -#include "logger.h" - -namespace qpid { -namespace utils { - -Logger::Logger(const char* filename, const bool append): - std::ofstream(filename, append ? std::ios::app : std::ios::out) -{ - echo_flag = false; - timestamp_flag = true; - eol_flag = true; -} - -Logger::Logger(std::string& filename, const bool append): - std::ofstream(filename.c_str(), append ? std::ios::app : std::ios::out) -{ - echo_flag = false; - timestamp_flag = true; - eol_flag = true; -} - -Logger::~Logger() -{ - close(); -} - -void Logger::write_timestamp() -{ - int len; - apr_time_exp_t now; - apr_time_exp_lt(&now, apr_time_now()); - sprintf(buff, "%4d/%02d/%02d %02d:%02d:%02d.%06d : ", 1900+now.tm_year, now.tm_mon, - now.tm_mday, now.tm_hour, now.tm_min, now.tm_sec, now.tm_usec); - write(buff, strlen(buff)); -} - - -void Logger::log(const char* message) -{ - if (timestamp_flag && eol_flag) - { - eol_flag = false; - write_timestamp(); - } - write(message, strlen(message)); - if (echo_flag) - std::cout << message; - if (strchr(message, '\n')) - eol_flag = true; -} - -void Logger::log(const char* message, const bool echo) -{ - if (timestamp_flag && eol_flag) - { - eol_flag = false; - write_timestamp(); - } - write(message, strlen(message)); - if (echo) - std::cout << message; - if (strchr(message, '\n')) - eol_flag = true; -} - -void Logger::log(const char* message, const bool echo, const bool timestamp) -{ - if (timestamp && eol_flag) - { - eol_flag = false; - write_timestamp(); - } - write(message, strlen(message)); - if (echo) - std::cout << message; - if (strchr(message, '\n')) - eol_flag = true; -} - -Logger& Logger::operator<< (const bool b) -{ - log(b ? "true" : "false"); - return *this; -} - -Logger& Logger::operator<< (const short s) -{ - sprintf(buff, "%d", s); - log(buff); - return *this; -} - -Logger& Logger::operator<< (const unsigned short us) -{ - sprintf(buff, "%u", us); - log(buff); - return *this; -} - -Logger& Logger::operator<< (const int i) -{ - sprintf(buff, "%d", i); - log(buff); - return *this; -} - -Logger& Logger::operator<< (const unsigned int ui) -{ - sprintf(buff, "%u", ui); - log(buff); - return *this; -} - -Logger& Logger::operator<< (const long l) -{ - sprintf(buff, "%ld", l); - log(buff); - return *this; -} - -Logger& Logger::operator<< (const unsigned long ul) -{ - sprintf(buff, "%lu", ul); - log(buff); - return *this; -} - -Logger& Logger::operator<< (const long long l) -{ - sprintf(buff, "%ld", l); - log(buff); - return *this; -} - -Logger& Logger::operator<< (const unsigned long long ul) -{ - sprintf(buff, "%lu", ul); - log(buff); - return *this; -} - -Logger& Logger::operator<< (const float f) -{ - sprintf(buff, "%f", f); - log(buff); - return *this; -} - -Logger& Logger::operator<< (const double d) -{ - sprintf(buff, "%lf", d); - log(buff); - return *this; -} - -Logger& Logger::operator<< (const long double ld) -{ - sprintf(buff, "%Lf", ld); - log(buff); - return *this; -} - -Logger& Logger::operator<< (const char* cstr) -{ - log(cstr); - return *this; -} - -Logger& Logger::operator<< (const std::string& str) -{ - log(str.c_str()); - return *this; -} - -} -} - diff --git a/cpp/common/utils/src/logger_test.cpp b/cpp/common/utils/src/logger_test.cpp deleted file mode 100644 index 1866af9fbb..0000000000 --- a/cpp/common/utils/src/logger_test.cpp +++ /dev/null @@ -1,78 +0,0 @@ -/* - * - * Copyright (c) 2006 The Apache Software Foundation - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ -#include <iostream> -#include <string> -#include "logger.h" - -using namespace qpid::utils; - -void run_sequence(Logger& log) -{ - bool b = true; - short s = -5; - unsigned short us = 12; - int i = -2345; - unsigned int ui = 34567; - long l = -12345678; - unsigned long ul = 23456789; - long long ll = -1234567890; - unsigned long long ull = 1234567890; - float f = -123.45678; - double d = 123.45678901; - long double ld = 23456.789012345678; - char* cstr = "This is a test C string."; - char* cr = "\n"; - std::string str("This is a test std::string"); - log << "bool = " << b << cr; - log << "short = " << s << cr; - log << "unsigned sort = " << us << cr; - log << "int = " << i << cr; - log << "unsigned int = " << ui << cr; - log << "long = " << l << cr; - log << "unsigned long = " << ul << cr; - log << "long long = " << ll << cr; - log << "unsigned long long = " << ull << cr; - log << "float = " << f << cr; - log << "double = " << d << cr; - log << "long double = " << ld << cr; - log << "char* = " << cstr << cr; - log << "std::string = " << str << cr; - log << "String 1\n"; - log << "String 2\n" << "String 3 " << "String 4\n"; - log << "Literal bool = " << false << cr; - log << "Literal unsigned int = " << 15 << cr; - log << "Literal double = " << (double)15 << cr; -} - -int main(int argc, char** argv) -{ - Logger log("test_log.txt", false); - std::cout << "****** Initial state (echo off, timestamp on)" << std::endl; - run_sequence(log); - std::cout << std::endl << "****** (echo off, timestamp off)" << std::endl; - log.setTimestampFlag(false); - run_sequence(log); - std::cout << std::endl << "****** (echo on, timestamp on)" << std::endl; - log.setEchoFlag(true); - log.setTimestampFlag(true); - run_sequence(log); - std::cout << std::endl << "****** (echo on, timestamp off)" << std::endl; - log.setTimestampFlag(false); - run_sequence(log); - return 0; -} |