20 #ifndef _TPIE_LOGSTREAM_H
21 #define _TPIE_LOGSTREAM_H
27 #include <tpie/tpie_export.h>
28 #include <tpie/config.h>
37 extern bool logging_disabled;
42 virtual void log(
log_level level,
const char * message,
size_t message_size) = 0;
44 virtual void begin_group(
const std::string &) {};
45 virtual void end_group() {};
48 TPIE_EXPORT
void add_log_target(
log_target * t);
49 TPIE_EXPORT
void remove_log_target(
log_target * t);
50 TPIE_EXPORT
void log_to_targets(
log_level level,
const char * data,
size_t size);
52 TPIE_EXPORT
void begin_log_group(
const std::string & name);
53 TPIE_EXPORT
void end_log_group();
55 class log_stream_buf:
public std::basic_streambuf<char, std::char_traits<char> > {
57 const static size_t buff_size = 2048;
58 const static size_t max_targets = 8;
60 char m_buff[buff_size];
67 virtual int overflow(
int c = traits_type::eof())
override;
68 virtual int sync()
override;
71 void add_target(
log_target * t) {add_log_target(t);}
72 void remove_target(
log_target * t) {remove_log_target(t);}
113 log_level get_level()
const {
return level; }
130 #endif //__TPIE_LOGSTREAM_H__