|
|
@@ -10,6 +10,7 @@
|
|
|
#include <memory>
|
|
|
#include <unordered_map>
|
|
|
|
|
|
+#include "logger/c_logger.h"
|
|
|
#include "logger/logger.h"
|
|
|
#include "../../../types/resource_factory/include/resource_factory/prototype_factory.hpp"
|
|
|
|
|
|
@@ -18,6 +19,15 @@ INSTANTIATE_PROTOTYPE_FACTORY_2(logging::impl_factory);
|
|
|
using namespace logging;
|
|
|
|
|
|
struct logging::manager_impl {
|
|
|
+ std::shared_ptr<logger_impl> get(std::string const & name) {
|
|
|
+ auto it = loggers.find(name);
|
|
|
+ if (it == loggers.end()) {
|
|
|
+ auto & factory = impl_factory::instance();
|
|
|
+ it = loggers.emplace(name, factory.get(name)).first;
|
|
|
+ }
|
|
|
+ return it->second;
|
|
|
+ }
|
|
|
+
|
|
|
std::shared_ptr<logger_impl> default_logger;
|
|
|
std::unordered_map<std::string, std::shared_ptr<logger_impl>> loggers;
|
|
|
};
|
|
|
@@ -29,11 +39,13 @@ logger manager::get() {
|
|
|
}
|
|
|
|
|
|
logger manager::get(std::string const & name) {
|
|
|
- auto it = pimpl->loggers.find(name);
|
|
|
- if (it == pimpl->loggers.end()) {
|
|
|
- auto & factory = impl_factory::instance();
|
|
|
- it = pimpl->loggers.emplace(name, factory.get(name)).first;
|
|
|
- }
|
|
|
- return logger(name, it->second);
|
|
|
+ return logger(name, pimpl->get(name));
|
|
|
}
|
|
|
|
|
|
+c_logger manager::c_get() {
|
|
|
+ return c_logger("", pimpl->default_logger);
|
|
|
+}
|
|
|
+
|
|
|
+c_logger manager::c_get(std::string const & name) {
|
|
|
+ return c_logger(name, pimpl->get(name));
|
|
|
+}
|