wibble
0.1.28
|
00001 #ifndef WIBBLE_LOG_FILTERS_H 00002 #define WIBBLE_LOG_FILTERS_H 00003 00004 #include <wibble/log/stream.h> 00005 #include <vector> 00006 00007 namespace wibble { 00008 namespace log { 00009 00019 struct Timestamper : public Sender 00020 { 00021 Sender* next; 00022 std::string fmt; 00023 00024 Timestamper(Sender* next = 0, const std::string& fmt = "%b %e %T "); 00025 virtual ~Timestamper(); 00026 00027 virtual void send(Level level, const std::string& msg); 00028 }; 00029 00033 struct LevelFilter : public log::Sender 00034 { 00035 Sender* next; 00036 log::Level minLevel; 00037 00038 LevelFilter(Sender* next = 0, log::Level minLevel = log::INFO); 00039 virtual ~LevelFilter(); 00040 00041 virtual void send(log::Level level, const std::string& msg); 00042 }; 00043 00047 struct Tee : public log::Sender 00048 { 00049 std::vector<Sender*> next; 00050 00051 Tee(); 00052 // Shortcut to initialise with two streams 00053 Tee(Sender* first, Sender* second); 00054 ~Tee(); 00055 00056 virtual void send(log::Level level, const std::string& msg); 00057 }; 00058 00059 } 00060 } 00061 00062 // vim:set ts=4 sw=4: 00063 #endif