wibble  1.1
filters.h
Go to the documentation of this file.
1 #ifndef WIBBLE_LOG_FILTERS_H
2 #define WIBBLE_LOG_FILTERS_H
3 
4 #include <wibble/log/stream.h>
5 #include <vector>
6 
7 namespace wibble {
8 namespace log {
9 
19 struct Timestamper : public Sender
20 {
22  std::string fmt;
23 
24  Timestamper(Sender* next = 0, const std::string& fmt = "%b %e %T ");
25  virtual ~Timestamper();
26 
27  virtual void send(Level level, const std::string& msg);
28 };
29 
33 struct LevelFilter : public log::Sender
34 {
37 
39  virtual ~LevelFilter();
40 
41  virtual void send(log::Level level, const std::string& msg);
42 };
43 
47 struct Tee : public log::Sender
48 {
49  std::vector<Sender*> next;
50 
51  Tee();
52  // Shortcut to initialise with two streams
53  Tee(Sender* first, Sender* second);
54  ~Tee();
55 
56  virtual void send(log::Level level, const std::string& msg);
57 };
58 
59 }
60 }
61 
62 // vim:set ts=4 sw=4:
63 #endif
wibble::iterator
Iterator< typename I::value_type > iterator(I i)
Definition: iterator.h:123
wibble::log::Level
Level
Urgency of a log message.
Definition: stream.h:11
wibble::log::Timestamper
Prepend timestamps to log lines.
Definition: filters.h:19
wibble::log::Timestamper::next
Sender * next
Definition: filters.h:21
wibble::log::Sender
Handle sending a log message.
Definition: stream.h:22
wibble::log::Timestamper::fmt
std::string fmt
Definition: filters.h:22
macros.h
wibble::log::LevelFilter::~LevelFilter
virtual ~LevelFilter()
Definition: filters.cpp:64
wibble::log::LevelFilter::minLevel
log::Level minLevel
Definition: filters.h:36
wibble::log::Tee
Send the same message to multiple streams.
Definition: filters.h:47
filters.h
wibble::str::fmt
std::string fmt(const char *f,...)
Definition: string.cpp:123
wibble::log::INFO
@ INFO
Definition: stream.h:14
stream.h
wibble::log::LevelFilter::LevelFilter
LevelFilter(Sender *next=0, log::Level minLevel=log::INFO)
Definition: filters.cpp:59
wibble::log::Timestamper::~Timestamper
virtual ~Timestamper()
Definition: filters.cpp:22
wibble::log::Timestamper::send
virtual void send(Level level, const std::string &msg)
Log one line of text with the given level.
Definition: filters.cpp:26
wibble::log::Tee::~Tee
~Tee()
Definition: filters.cpp:80
wibble::log::Timestamper::Timestamper
Timestamper(Sender *next=0, const std::string &fmt="%b %e %T ")
Definition: filters.cpp:17
wibble::log::Tee::next
std::vector< Sender * > next
Definition: filters.h:49
wibble::log::Sender::send
virtual void send(Level level, const std::string &msg)=0
Log one line of text with the given level.
wibble::log::Tee::send
virtual void send(log::Level level, const std::string &msg)
Log one line of text with the given level.
Definition: filters.cpp:84
wibble::log::Tee::Tee
Tee()
Definition: filters.cpp:74
wibble::log::LevelFilter::send
virtual void send(log::Level level, const std::string &msg)
Log one line of text with the given level.
Definition: filters.cpp:68
wibble
Definition: amorph.h:17
wibble::log::LevelFilter::next
Sender * next
Definition: filters.h:35
wibble::grcal::date::now
void now(int *dst)
Fill in an int[6] with the UTC values for now.
wibble::log::LevelFilter
Log only messages whose level is >= minLevel.
Definition: filters.h:33