|
| DebugStream (Debug::type t=Debug::NONE, Debug::verbosity v=0) |
| Constructor, sets the debug level to t.
|
|
| DebugStream (char const *f, Debug::type t=Debug::NONE, bool truncate=false) |
| Constructor, sets the log file to f, and the debug level to t.
|
|
StreamEvent_Signal | signal_stream_event () |
|
void | level (Debug::type t) noexcept |
| Sets the debug level to t.
|
|
Debug::type | level () const noexcept |
| Returns the current debug level.
|
|
void | addLevel (Debug::type t) noexcept |
| Adds t to the current debug level.
|
|
void | delLevel (Debug::type t) noexcept |
| Deletes t from the current debug level.
|
|
virtual void | logFile (const std::string &f, bool truncate=false) |
| Sets the debugstreams' logfile to f.
|
|
std::string | getLogFile () const noexcept |
|
void | setLogFile (const std::string &n) noexcept |
|
bool | isOnLogFile () const noexcept |
|
void | onLogFile (bool truncate=false) |
|
void | offLogFile () noexcept |
|
void | enableOnScreen () |
|
void | disableOnScreen () |
|
bool | debugging (Debug::type t=Debug::ANY) const noexcept |
| Returns true if t is part of the current debug level.
|
|
std::ostream & | debug (Debug::type t=Debug::ANY) noexcept |
|
std::ostream & | operator[] (Debug::type t) noexcept |
|
std::ostream & | to_end (Debug::type t) noexcept |
|
std::ostream & | operator() (Debug::type t) noexcept |
|
void | showDateTime (bool s) noexcept |
|
void | showLocalTime (bool s) noexcept |
|
void | showMilliseconds (bool s) noexcept |
|
void | showMicroseconds (bool s) noexcept |
|
void | showLogType (bool s) noexcept |
|
void | showLabels (bool s) noexcept |
|
void | hideLabelKey (bool s) noexcept |
|
std::ostream & | log (Debug::type l) noexcept |
|
void | verbose (Debug::verbosity v) noexcept |
|
Debug::verbosity | verbose () const noexcept |
| Returns the current verbose level.
|
|
DebugStream & | V (Debug::verbosity v) noexcept |
|
void | addLabel (const std::string &key, const std::string &value) noexcept |
|
void | delLabel (const std::string &key) noexcept |
|
void | cleanupLabels () noexcept |
|
std::vector< Label > | getLabels () noexcept |
|
std::ostream & | printDate (Debug::type t, char brk='/') noexcept |
|
std::ostream & | printTime (Debug::type t, char brk=':') noexcept |
|
std::ostream & | printDateTime (Debug::type t) noexcept |
|
std::ostream & | pos (int x, int y) noexcept |
|
const DebugStream & | operator= (const DebugStream &r) |
|
void | setLogName (const std::string &n) noexcept |
|
std::string | getLogName () const noexcept |
|
DebugStream is a ostream intended for debug output. It has also support for a logfile. Debug output is output to cerr and if the logfile is set, to the logfile.
Example of Usage: DebugStream debug; debug.level(Debug::INFO); debug.debug(Debug::WARN) << "WARN\n"; debug[Debug::INFO] << "INFO\n"; debug << "Always\n";
Will output: INFO Always
If you want to have debug output from time critical code you should use this construct: if (debug.is_info()) { debug << "...debug output...\n"; }
To give debug info even if no debug (NONE) is requested: debug << "... always output ...\n";
To give debug output regardless of what debug level is set (!NONE): debug.debug() << "...on debug output...\n"; debug[Debug::ANY] << "...on debug output...\n";
To give debug output when a specific debug level is set (INFO): debug.debug(Debug::INFO) << "...info...\n"; debug[Debug::INFO] << "...info...\n";
To give debug output when either on of debug levels is set (INFO or CRIT): debug.debug(Debug::type(Debug::INFO | Debug::CRIT)) << "...info/crit...\n"; debug[Debug::type(Debug::INFO | Debug::CRIT)] << "...info/crit...\n";