00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #include <stdio.h>
00018 #include <stdarg.h>
00019 #include <string>
00020 #include <iomanip>
00021
00022 #include "assa/StdOutLogger.h"
00023
00024 using namespace ASSA;
00025
00026 int
00027 StdOutLogger::
00028 log_msg (Group g_,
00029 size_t indent_level_,
00030 const string& func_name_,
00031 size_t expected_sz_,
00032 const char* fmt_,
00033 va_list msg_list_)
00034 {
00035 bool release = false;
00036 char* msgbuf_ptr = NULL;
00037
00038 if (! group_enabled (g_)) {
00039 return 0;
00040 }
00041
00042 add_timestamp (std::cerr);
00043 indent_func_name (std::cerr, func_name_, indent_level_, FUNC_MSG);
00044
00045 msgbuf_ptr = format_msg (expected_sz_, fmt_, msg_list_, release);
00046
00047 if (msgbuf_ptr == NULL) {
00048 return -1;
00049 }
00050 std::cout << msgbuf_ptr;
00051
00052 if (release) {
00053 delete [] msgbuf_ptr;
00054 }
00055 return 0;
00056 }
00057
00058 int
00059 StdOutLogger::
00060 log_func (Group g_,
00061 size_t indent_level_,
00062 const string& func_name_,
00063 marker_t type_)
00064 {
00065 if (! group_enabled (g_)) {
00066 return 0;
00067 }
00068
00069 add_timestamp (std::cerr);
00070 indent_func_name (std::cout, func_name_, indent_level_, type_);
00071
00072 if (type_ == FUNC_ENTRY) {
00073 std::cout << "---v---\n";
00074 }
00075 else if (type_ == FUNC_EXIT) {
00076 std::cout << "---^---\n";
00077 }
00078
00079 return 0;
00080 }
00081