logger_impl.h 628 B

123456789101112131415161718192021222324252627282930313233
  1. #pragma once
  2. #include "logger/logger_fwd.h"
  3. #include <memory>
  4. #include <vector>
  5. #include <utility>
  6. namespace logging {
  7. class log_appender {
  8. public:
  9. log_appender(p_appender append, p_layout layout);
  10. ~log_appender();
  11. void write(logpacket const & packet);
  12. bool should_log(level ll) const;
  13. void flush();
  14. private:
  15. p_appender appender_;
  16. p_layout layout_;
  17. bool has_logged_;
  18. };
  19. struct logger_impl {
  20. bool should_log(level ll) const;
  21. void write(logpacket const & pkt);
  22. void flush();
  23. std::vector<std::shared_ptr<log_appender>> impls;
  24. level min_log_level;
  25. };
  26. }