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
Level
Urgency of a log message.
Definition: stream.h:12
@ INFO
Definition: stream.h:14
Definition: amorph.h:17
Log only messages whose level is >= minLevel.
Definition: filters.h:34
LevelFilter(Sender *next=0, log::Level minLevel=log::INFO)
Definition: filters.cpp:59
virtual ~LevelFilter()
Definition: filters.cpp:64
log::Level minLevel
Definition: filters.h:36
virtual void send(log::Level level, const std::string &msg)
Log one line of text with the given level.
Definition: filters.cpp:68
Sender * next
Definition: filters.h:35
Handle sending a log message.
Definition: stream.h:23
Send the same message to multiple streams.
Definition: filters.h:48
~Tee()
Definition: filters.cpp:80
std::vector< Sender * > next
Definition: filters.h:49
virtual void send(log::Level level, const std::string &msg)
Log one line of text with the given level.
Definition: filters.cpp:84
Tee()
Definition: filters.cpp:74
Prepend timestamps to log lines.
Definition: filters.h:20
virtual void send(Level level, const std::string &msg)
Log one line of text with the given level.
Definition: filters.cpp:26
std::string fmt
Definition: filters.h:22
Timestamper(Sender *next=0, const std::string &fmt="%b %e %T ")
Definition: filters.cpp:17
virtual ~Timestamper()
Definition: filters.cpp:22
Sender * next
Definition: filters.h:21