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

Классы

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

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

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() [1/2]

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

Constructor, sets the debug level to t.

◆ DebugStream() [2/2]

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.

Методы

◆ addLevel()

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

Adds t to the current debug level.

◆ debug()

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

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

◆ debugging()

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

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

◆ delLevel()

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

Deletes t from the current debug level.

◆ level() [1/2]

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

Sets the debug level to t.

◆ level() [2/2]

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

Returns the current debug level.

◆ logFile()

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

Sets the debugstreams' logfile to f.

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

◆ operator()()

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

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

◆ operator[]()

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

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

◆ to_end()

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

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

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

◆ dt

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

The current debug level.

◆ nullstream

std::ostream DebugStream::nullstream
protected

The no-op stream.