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;
38 FilesProxy() : fout(
"/dev/null"), muteOut(fopen(
"/dev/null",
"w")) {}
55 stdout = muteFiles.muteOut;
57 stderr = muteFiles.muteOut;
59 cout_sbuf = std::cout.rdbuf();
60 cerr_sbuf = std::cerr.rdbuf();
61 std::cout.rdbuf(muteFiles.fout.rdbuf());
62 std::cerr.rdbuf(muteFiles.fout.rdbuf());
79 std::cout.rdbuf(cout_sbuf);
83 std::cerr.rdbuf(cerr_sbuf);