xuqiang 4 mesi fa
parent
commit
5089d295fc
3 ha cambiato i file con 24 aggiunte e 5 eliminazioni
  1. 12 2
      include/logger.h
  2. 6 2
      src/logger.cpp
  3. 6 1
      src/main.cpp

+ 12 - 2
include/logger.h

@@ -20,12 +20,22 @@
 
 class Logger
 {
-
 public:
+    enum LOG_LEVEL : int {
+        TRACE = SPDLOG_LEVEL_TRACE,
+        DEBUG = SPDLOG_LEVEL_DEBUG,
+        INFO = SPDLOG_LEVEL_INFO,
+        WARN = SPDLOG_LEVEL_WARN,
+        ERR = SPDLOG_LEVEL_ERROR,
+        CRITICAL = SPDLOG_LEVEL_CRITICAL,
+        OFF = SPDLOG_LEVEL_OFF,
+        N_LEVELS
+    };
+
     Logger();
     ~Logger();
 
-    static void setup();
+    static void setup(LOG_LEVEL level);
 };
 
 #endif // LOGGER_H

+ 6 - 2
src/logger.cpp

@@ -16,7 +16,7 @@ Logger::~Logger()
 
 }
 
-void Logger::setup()
+void Logger::setup(LOG_LEVEL level)
 {
 #if 0
     auto rotating_logger = spdlog::rotating_logger_mt<spdlog::async_factory>("file", "logs/log.txt", MAX_ROTATING_FILE_SIZE, MAX_ROTATING_FILES);
@@ -41,8 +41,12 @@ void Logger::setup()
     std::vector<spdlog::sink_ptr> sinks {rotating_sink, console_sink};
     auto logger = std::make_shared<spdlog::async_logger>("multi_sink", sinks.begin(), sinks.end(), spdlog::thread_pool(), spdlog::async_overflow_policy::block);
     
+#ifdef NDEBUG
+    logger->set_pattern("[%Y-%m-%d %H:%M:%S.%e] [%^%l%$] %v");
+#else
     logger->set_pattern("[%Y-%m-%d %H:%M:%S.%e] Thread ID: %t (%s:%#) [%^%l%$] %v");
-    logger->set_level(spdlog::level::trace); // 允许所有日志通过 logger 层
+#endif
+    logger->set_level(static_cast<spdlog::level::level_enum>(level)); // 允许所有日志通过 logger 层
     spdlog::register_logger(logger);
     spdlog::set_default_logger(logger);
 }

+ 6 - 1
src/main.cpp

@@ -14,7 +14,12 @@ int main(int argc, char *argv[])
 #endif
     QCoreApplication::setAttribute(Qt::AA_UseHighDpiPixmaps);
     QApplication app(argc, argv);
-    Logger::setup();
+
+#ifdef NDEBUG
+    Logger::setup(Logger::INFO);
+#else
+    Logger::setup(Logger::TRACE);
+#endif
 
     AppContext &appCtx = AppContext::instance();
     ProjectManager &projectMgr = appCtx.projectManager();