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 
38  LevelFilter(Sender* next = 0, log::Level minLevel = log::INFO);
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:11
Prepend timestamps to log lines.
Definition: filters.h:19
Definition: stream.h:14
log::Level minLevel
Definition: filters.h:36
std::string fmt
Definition: filters.h:22
std::vector< Sender * > next
Definition: filters.h:49
Timestamper(Sender *next=0, const std::string &fmt="%b %e %T ")
Definition: filters.cpp:17
Send the same message to multiple streams.
Definition: filters.h:47
Handle sending a log message.
Definition: stream.h:22
Definition: amorph.h:17
Log only messages whose level is >= minLevel.
Definition: filters.h:33
Sender * next
Definition: filters.h:21
virtual ~Timestamper()
Definition: filters.cpp:22
virtual void send(Level level, const std::string &msg)
Log one line of text with the given level.
Definition: filters.cpp:26
Sender * next
Definition: filters.h:35