default_logger_binding.hpp 864 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. //
  2. // default_logger_binding.hpp
  3. // logger
  4. //
  5. // Created by Sam Jaffe on 10/3/15.
  6. //
  7. //
  8. #pragma once
  9. #include "logger.hpp"
  10. #include <vector>
  11. namespace logging {
  12. struct properties;
  13. class appender;
  14. class default_logger_impl : public logger_impl {
  15. public:
  16. static bool register_impl(std::string const&,std::unique_ptr<logger_impl>(*)(logging::properties const&));
  17. static logger_impl& instance();
  18. typedef std::vector<appender> datatype;
  19. typedef datatype::iterator iterator;
  20. void write(log_level level, std::string const& msg) override;
  21. void flush() override;
  22. private:
  23. datatype streams_;
  24. };
  25. class appender : public logger_impl {
  26. public:
  27. appender(logger_impl*);
  28. void write(log_level level, std::string const& msg) override;
  29. void flush() override;
  30. private:
  31. logger_impl* target_;
  32. };
  33. }