Ver Fonte

Break down functions

Sam Jaffe há 6 anos atrás
pai
commit
c0dbf9c95f
1 ficheiros alterados com 24 adições e 18 exclusões
  1. 24 18
      src/log_manager.cxx

+ 24 - 18
src/log_manager.cxx

@@ -30,7 +30,9 @@ using p_logger = std::shared_ptr<logger_impl>;
 
 struct logging::manager_impl {
   p_logger get_logger(properties const & props);
-  
+  void configure_appenders(properties const & props);
+  void configure_loggers(properties const & props);
+
   p_logger default_logger;
   std::unordered_map<std::string, std::pair<p_appender, p_layout>> appenders;
   std::unordered_map<std::string, p_logger> loggers;
@@ -71,6 +73,25 @@ static p_layout load_layout(std::string const & source,
   return layouts::instance().get("default", {});
 }
 
+void manager_impl::configure_appenders(properties const & props) {
+  // TODO: Load logger_impl here
+  // TODO: Support multiple File loggers, etc.
+  expects(props["appenders"].type == properties::OBJECT);
+  for (auto & app : props["appenders"].obj) {
+    auto pair = std::make_pair(load_appender(app.first, app.second),
+                               load_layout(app.first, app.second));
+    appenders.emplace(app.first, pair);
+  }
+}
+
+void manager_impl::configure_loggers(properties const & props) {
+  expects(props["loggers"].type == properties::OBJECT);
+  for (auto & log : props["loggers"].obj) {
+    loggers.emplace(log.first, get_logger(log.second["appenders"]));
+  }
+  default_logger = get_logger(props["loggers"]["root"]["appenders"]);
+}
+
 manager::manager() : pimpl_(new manager_impl) {}
 
 manager::~manager() {}
@@ -92,21 +113,6 @@ c_logger manager::c_get(std::string const & name) {
 }
 
 void manager::configure(properties const & props) {
-  // TODO: Load logger_impl here
-  auto & impls = props["configuration"]["appenders"];
-  // TODO: Support multiple File loggers, etc.
-  expects(impls.type == properties::OBJECT);
-  for (auto & app : impls.obj) {
-    auto pair = std::make_pair(load_appender(app.first, app.second),
-                               load_layout(app.first, app.second));
-    pimpl_->appenders.emplace(app.first, pair);
-  }
-
-  auto & configs = props["configuration"]["loggers"];
-  expects(configs.type == properties::OBJECT);
-  for (auto & log : configs.obj) {
-    auto logimpl = pimpl_->get_logger(log.second["appenders"]);
-    pimpl_->loggers.emplace(log.first, logimpl);
-  }
-  pimpl_->default_logger = pimpl_->get_logger(configs["root"]["appenders"]);
+  pimpl_->configure_appenders(props["configuration"]);
+  pimpl_->configure_loggers(props["configuration"]);
 }