20 #ifndef _TPIE_LOGSTREAM_H
21 #define _TPIE_LOGSTREAM_H
27 #ifndef __TPIE_LOGSTREAM_H__
28 #define __TPIE_LOGSTREAM_H__
30 #include <tpie/config.h>
39 extern bool logging_disabled;
44 virtual void log(
log_level level,
const char * message,
size_t message_size) = 0;
46 virtual void begin_group(
const std::string &) {};
47 virtual void end_group() {};
53 void begin_log_group(
const std::string & name);
56 class log_stream_buf:
public std::basic_streambuf<char, std::char_traits<char> > {
58 const static size_t buff_size = 2048;
59 const static size_t max_targets = 8;
61 char m_buff[buff_size];
68 virtual int overflow(
int c = traits_type::eof())
override;
69 virtual int sync()
override;
72 void add_target(
log_target * t) {add_log_target(t);}
73 void remove_target(
log_target * t) {remove_log_target(t);}
114 log_level get_level()
const {
return level; }
131 #endif //__TPIE_LOGSTREAM_H__
133 #endif // _LOGSTREAM_H
A log is like a regular output stream, but it also supports messages at different priorities...
void remove_target(log_target *t)
LOG_INFORMATIONAL is used for informational messagse.
log_level
TPIE logging levels, from higest priority to lowest.
RAII-style management for log groups.
logstream(log_level level=LOG_INFORMATIONAL)
Constructor.
void add_target(log_target *t)