appender.h 685 B

1234567891011121314151617181920212223242526272829
  1. #pragma once
  2. #include <iosfwd>
  3. namespace logging {
  4. class layout;
  5. struct logpacket;
  6. class properties;
  7. enum class level : int;
  8. struct appender {
  9. virtual ~appender() = default;
  10. virtual std::ostream & stream() = 0;
  11. virtual void write(logpacket const & packet, layout & withLayout) = 0;
  12. virtual bool should_log(level ll) const = 0;
  13. virtual void flush() = 0;
  14. };
  15. struct simple_appender : appender {
  16. level threshold;
  17. simple_appender() = default;
  18. simple_appender(properties const & props);
  19. void write(logpacket const & packet, layout & withLayout) override;
  20. bool should_log(level ll) const override;
  21. void flush() override;
  22. };
  23. }