annotate common/logger.h @ 0:a4671277546c tip

created the repository for the thymian project
author ferencd
date Tue, 17 Aug 2021 11:19:54 +0200
parents
children
rev   line source
ferencd@0 1 #ifndef LOGGER_H
ferencd@0 2 #define LOGGER_H
ferencd@0 3
ferencd@0 4 #include "log.h"
ferencd@0 5 #include "log_machine.h"
ferencd@0 6
ferencd@0 7 #include <vector>
ferencd@0 8 #include <memory>
ferencd@0 9 #include <string>
ferencd@0 10
ferencd@0 11 namespace unafrog
ferencd@0 12 {
ferencd@0 13 class logger final
ferencd@0 14 {
ferencd@0 15 public:
ferencd@0 16
ferencd@0 17 static logger& instance()
ferencd@0 18 {
ferencd@0 19 static logger the_instance;
ferencd@0 20 return the_instance;
ferencd@0 21 }
ferencd@0 22
ferencd@0 23 void propagate_log(unafrog::log::LogLevel level, const std::string& message) noexcept;
ferencd@0 24
ferencd@0 25 void add_log_machine(unafrog::log::log_machine*);
ferencd@0 26
ferencd@0 27 private:
ferencd@0 28 logger()= default;
ferencd@0 29 logger(logger const&) = delete;
ferencd@0 30 logger& operator=(logger const&) = delete;
ferencd@0 31
ferencd@0 32 std::vector<std::shared_ptr<unafrog::log::log_machine>> log_machines;
ferencd@0 33 };
ferencd@0 34 }
ferencd@0 35 #endif // LOGGER_H