// // log_manager.hpp // logging // // Created by Sam Jaffe on 4/1/19. // #pragma once #include #include namespace objects { namespace prototype { template class factory; } } namespace logging { class appender; class c_logger; class layout; class logger; class properties; class manager { public: static manager & instance(); logger get(); logger get(std::string const & name); c_logger c_get(); c_logger c_get(std::string const & name); void configure(properties const & props); manager(); ~manager(); private: std::unique_ptr pimpl_; }; using appenders = objects::prototype::factory< std::shared_ptr, properties const &>; using layouts = objects::prototype::factory< std::shared_ptr, properties const &>; }