3 #include <logging_common.hpp>
4 #include <logging_creation.hpp>
16 std::unordered_map<std::string, logger_creator>
creators;
26 [](
const logging_config_t& config)->
logger*{
32 [](
const logging_config_t& config)->logger*{
38 [](
const logging_config_t& config)->logger*{
44 [](
const logging_config_t& config)->logger*{
59 auto type = config.find(
"type");
60 if(type == config.end()){
61 throw std::runtime_error(
62 "Logging factory configuration requires a type of logger"
66 auto found =
creators.find(type->second);
67 if(found !=
creators.end())
return found->second(config);
69 throw std::runtime_error(
70 "Couldn't produce logger for type: " + type->second
Class representing a logger capable of writing to files.
Definition: file_logger.hpp:8
Class representing a logger capable of writing to files and, at the same time, to standard out.
Definition: full_logger.hpp:7
Logger factory class can be used to build loggers.
Definition: logger_factory.hpp:9
logger_factory()
Logger factory constructor.
Definition: logger_factory.hpp:23
logger * produce(const logging_config_t &config) const
Produce a logger.
Definition: logger_factory.hpp:57
std::unordered_map< std::string, logger_creator > creators
Logger creation map which works with function pointers.
Definition: logger_factory.hpp:16
Class providing the base for any logger.
Definition: logger.hpp:8
Class representing a logger capable of writing to standard out stream.
Definition: std_out_logger.hpp:7