UniSet  2.6.0
Классы | Открытые типы | Открытые члены | Защищенные члены | Защищенные данные | Полный список членов класса
Класс DebugStream
Граф наследования:DebugStream:
Inheritance graph
[см. легенду]
Граф связей класса DebugStream:
Collaboration graph
[см. легенду]

Классы

struct  debugstream_internal
 So that public parts of DebugStream does not need to know about filebuf. Подробнее...
class  IosFlagSaver

Открытые типы

typedef sigc::signal< void,
const std::string & > 
StreamEvent_Signal

Открытые члены

 DebugStream (Debug::type t=Debug::NONE)
 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
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 showMilliseconds (bool s) noexcept
void showMicroseconds (bool s) noexcept
void showLogType (bool s) noexcept
std::ostream & log (Debug::type l) 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 DebugStreamoperator= (const DebugStream &r)
void setLogName (const std::string &n) noexcept
std::string getLogName () const noexcept

Защищенные члены

void sbuf_overflow (const std::string &s) noexcept

Защищенные данные

Debug::type dt = { Debug::NONE }
 The current debug level.
std::ostream nullstream
 The no-op stream.
debugstream_internalinternal = { 0 }
bool show_datetime = { true }
bool show_logtype = { true }
bool show_msec = { false }
bool show_usec = { false }
std::string fname = { "" }
StreamEvent_Signal s_stream
std::string logname = { "" }
bool isWriteLogFile = { false }

Подробное описание

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";

Конструктор(ы)

DebugStream::DebugStream ( Debug::type  t = Debug::NONE)
explicit

Constructor, sets the debug level to t.

DebugStream::DebugStream ( char const *  f,
Debug::type  t = Debug::NONE,
bool  truncate = false 
)
explicit

Constructor, sets the log file to f, and the debug level to t.

Методы

void DebugStream::addLevel ( Debug::type  t)
inline

Adds t to the current debug level.

std::ostream & DebugStream::debug ( Debug::type  t = Debug::ANY)

Returns the no-op stream if t is not part of the current debug level otherwise the real debug stream is used.

bool DebugStream::debugging ( Debug::type  t = Debug::ANY) const
inline

Returns true if t is part of the current debug level.

void DebugStream::delLevel ( Debug::type  t)
inline

Deletes t from the current debug level.

void DebugStream::level ( Debug::type  t)
inline

Sets the debug level to t.

Debug::type DebugStream::level ( ) const
inline

Returns the current debug level.

void DebugStream::logFile ( const std::string &  f,
bool  truncate = false 
)
virtual

Sets the debugstreams' logfile to f.

Переопределяется в uniset::LogAgregator.

std::ostream & DebugStream::operator() ( Debug::type  t)

Вывод продолжения логов (без даты и времени) "log()"

std::ostream& DebugStream::operator[] ( Debug::type  t)
inline

This is an operator to give a more convenient use: dbgstream[Debug::INFO] << "Info!\n"; Вывод осуществляется с датой и временем (если они не отключены)

std::ostream& DebugStream::to_end ( Debug::type  t)
inline

Вывод продолжения логов (без даты и времени)

Данные класса

Debug::type DebugStream::dt = { Debug::NONE }
protected

The current debug level.

std::ostream DebugStream::nullstream
protected

The no-op stream.