11 namespace GGSSmartLog {
13 const char *levelNames[6] = {
"",
"ERROR",
"WARNING",
"INFO",
"DEBUG",
"DEEPDEB" };
14 int verboseLevel = INFO;
15 int maxRoutineNameLength = 30;
17 const std::string &Format(
const std::string &str,
unsigned int maxLength) {
18 static std::string returnStr;
20 if (returnStr.length() > maxLength) {
21 returnStr = returnStr.substr(0, maxLength - 3).append(
"...");
30 FILE* stdoutSave = NULL;
31 FILE* stderrSave = NULL;
33 std::streambuf* cout_sbuf = NULL;
34 std::streambuf* cerr_sbuf = NULL;
39 fout(
"/dev/null"), muteOut(fopen(
"/dev/null",
"w")) {
57 stdout = muteFiles.muteOut;
59 stderr = muteFiles.muteOut;
61 cout_sbuf = std::cout.rdbuf();
62 cerr_sbuf = std::cerr.rdbuf();
63 std::cout.rdbuf(muteFiles.fout.rdbuf());
64 std::cerr.rdbuf(muteFiles.fout.rdbuf());
81 std::cout.rdbuf(cout_sbuf);
85 std::cerr.rdbuf(cerr_sbuf);