浏览代码

refactor & feat: 初始化时不设置Logger

SongZihuan 3 年之前
父节点
当前提交
74927954b8
共有 5 个文件被更改,包括 14 次插入53 次删除
  1. 1 17
      include/interface/init.h
  2. 0 11
      include/interface/init.inline.h
  3. 1 12
      src/interface/init.cpp
  4. 1 7
      test/src/it-init.cpp
  5. 11 6
      test/src/run-code.cpp

+ 1 - 17
include/interface/init.h

@@ -7,24 +7,8 @@
 #include "aFuntool.h"
 
 namespace aFunit {
-    struct InitInfo {
-        aFuntool::LogFactory &factor;
-        aFuntool::Logger &core_logger;
-        aFuntool::Logger &parser_logger;
-        aFuntool::Logger &code_logger;
-        aFuntool::Logger &sys_logger;
-        aFuntool::Logger &afun_logger;
-
-        AFUN_INLINE InitInfo(aFuntool::LogFactory &factor_,
-                             aFuntool::Logger &afun_logger_,
-                             aFuntool::Logger &core_logger_,
-                             aFuntool::Logger &parser_logger_,
-                             aFuntool::Logger &code_logger_,
-                             aFuntool::Logger &sys_logger_);
-    };
-
     AFUN_LANG_EXPORT extern aFuntool::Logger *aFunLogger;
-    AFUN_LANG_EXPORT bool aFunInit(InitInfo *info);
+    AFUN_LANG_EXPORT bool aFunInit();
     AFUN_STATIC void setAFunLogger(aFuntool::Logger *log);
 }
 

+ 0 - 11
include/interface/init.inline.h

@@ -4,17 +4,6 @@
 #include "init.h"
 
 namespace aFunit {
-    InitInfo::InitInfo(aFuntool::LogFactory &factor_,
-                       aFuntool::Logger &afun_logger_,
-                       aFuntool::Logger &core_logger_,
-                       aFuntool::Logger &parser_logger_,
-                       aFuntool::Logger &code_logger_,
-                       aFuntool::Logger &sys_logger_)
-        : factor{factor_}, core_logger{core_logger_}, parser_logger{parser_logger_}, code_logger{code_logger_},
-          sys_logger{sys_logger_}, afun_logger{afun_logger_} {
-        aFuntool::aFunAtExit(aFuntool::DlcHandle::dlcExit);
-    }
-
     void setAFunLogger(aFuntool::Logger *log) {
         aFunLogger = log;
     }

+ 1 - 12
src/interface/init.cpp

@@ -3,21 +3,10 @@
 namespace aFunit {
     aFuntool::Logger *aFunLogger = nullptr;
 
-    bool aFunInit(InitInfo *info) {
-        if (info == nullptr)
-            return false;
-
+    bool aFunInit() {
         aFuntool::getEndian();
         if (setlocale(LC_ALL, "") == nullptr)
             return false;
-
-        setAFunLogger(&info->afun_logger);
-        aFuncore::setCoreLogger(&info->core_logger);
-        aFunparser::setParserLogger(&info->parser_logger);
-        aFuncode::setCodeLogger(&info->code_logger);
-        aFuntool::setSysLogger(&info->sys_logger);
-
-        infoLog(aFunLogger, "aFun init success.");
         return true;
     }
 

+ 1 - 7
test/src/it-init.cpp

@@ -1,13 +1,7 @@
 #include "init.h"
 
 int main() {
-    auto factor = aFuntool::LogFactory(std::string(".") + aFuntool::SEP + "aFunlog", true);
-    auto core_logger = aFuntool::Logger(factor, "aFun-core");
-    auto sys_logger = aFuntool::Logger(factor, "aFun-sys");
-    auto aFun_logger = aFuntool::Logger(factor, "aFun");
-    auto info = aFunit::InitInfo(factor, aFun_logger, core_logger, core_logger, core_logger, sys_logger);
-
-    if (!aFunInit(&info)) {
+    if (!aFunit::aFunInit()) {
         aFuntool::printf_stderr(0, "aFunlang init error.");
         aFuntool::aFunExitReal(EXIT_FAILURE);
     }

+ 11 - 6
test/src/run-code.cpp

@@ -355,16 +355,21 @@ int Main() {
 int main() {
     int exit_code = 0;
     try {
+        if (!aFunit::aFunInit()) {
+            aFuntool::printf_stderr(0, "aFunlang init error.");
+            aFuntool::aFunExit(EXIT_FAILURE);
+        }
+
         auto factor = aFuntool::LogFactory(std::string(".") + aFuntool::SEP + "aFunlog", true);
         auto it_logger = aFuntool::Logger(factor, "aFun");
         auto core_logger = aFuntool::Logger(factor, "aFun-core");
         auto sys_logger = aFuntool::Logger(factor, "aFun-sys");
-        auto info = aFunit::InitInfo(factor, core_logger, core_logger, core_logger, sys_logger, it_logger);
-
-        if (!aFunInit(&info)) {
-            aFuntool::printf_stderr(0, "aFunlang init error.");
-            aFuntool::aFunExit(EXIT_FAILURE);
-        }
+        aFunit::setAFunLogger(&it_logger);
+        aFunrt::setRuntimeLogger(&core_logger);
+        aFunparser::setParserLogger(&core_logger);
+        aFuncore::setCoreLogger(&core_logger);
+        aFuncode::setCodeLogger(&core_logger);
+        aFuntool::setSysLogger(&sys_logger);
 
         exit_code = Main();
         aFuntool::aFunExit(exit_code);