BufferingAppender.hh 976 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. #if !defined(h_ebd0ee89_622d_4af1_9a9d_d0e057debe86)
  2. #define h_ebd0ee89_622d_4af1_9a9d_d0e057debe86
  3. #include <log4cpp/LayoutAppender.hh>
  4. #include <log4cpp/TriggeringEventEvaluator.hh>
  5. #include <list>
  6. #include <memory>
  7. LOG4CPP_NS_BEGIN
  8. class LOG4CPP_EXPORT BufferingAppender : public LayoutAppender
  9. {
  10. public:
  11. BufferingAppender(const std::string name, unsigned long max_size, std::auto_ptr<Appender> sink,
  12. std::auto_ptr<TriggeringEventEvaluator> evaluator);
  13. virtual void close() { sink_->close(); }
  14. bool getLossy() const { return lossy_; }
  15. void setLossy(bool lossy) { lossy_ = lossy; }
  16. protected:
  17. virtual void _append(const LoggingEvent& event);
  18. private:
  19. typedef std::list<LoggingEvent> queue_t;
  20. queue_t queue_;
  21. unsigned long max_size_;
  22. std::auto_ptr<Appender> sink_;
  23. std::auto_ptr<TriggeringEventEvaluator> evaluator_;
  24. bool lossy_;
  25. void dump();
  26. };
  27. LOG4CPP_NS_END
  28. #endif // h_ebd0ee89_622d_4af1_9a9d_d0e057debe86