|  | @@ -6,7 +6,7 @@
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  #include <string>
 | 
	
		
			
				|  |  | -#include <filesystem>
 | 
	
		
			
				|  |  | +#include <QApplication>
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  /* 初始化spdlog,输入的是模组名称,可以为空
 | 
	
	
		
			
				|  | @@ -18,58 +18,63 @@
 | 
	
		
			
				|  |  |  void initLog(QString ModuleName, CLHQLogApi& lhQLog)
 | 
	
		
			
				|  |  |  {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    try {
 | 
	
		
			
				|  |  | -        /* 创建一个控制台sink */
 | 
	
		
			
				|  |  | -        auto sink_consolse = std::make_shared<spdlog::sinks::stdout_color_sink_mt>();
 | 
	
		
			
				|  |  | +    try 
 | 
	
		
			
				|  |  | +    {
 | 
	
		
			
				|  |  |          /* 创建一个文件sink,每天一个,00:00创建新的 */
 | 
	
		
			
				|  |  |          // auto sink_file = std::make_shared<spdlog::sinks::daily_file_sink_mt>("FlowChartLog/log.txt",0,0);
 | 
	
		
			
				|  |  |          /* 自定义的sink */
 | 
	
		
			
				|  |  | -        std::filesystem::path execPath = std::filesystem::current_path();
 | 
	
		
			
				|  |  | +        // std::filesystem::path execPath = std::filesystem::current_path();
 | 
	
		
			
				|  |  | +        std::string execPath = QApplication::applicationDirPath().toStdString();
 | 
	
		
			
				|  |  |      #if defined(Q_OS_WIN32)
 | 
	
		
			
				|  |  |          #if C_DEBUG
 | 
	
		
			
				|  |  | -            std::string libName = execPath.string() + "/LHQLogd.dll";
 | 
	
		
			
				|  |  | +            std::string libName = execPath + "/LHQLogd.dll";
 | 
	
		
			
				|  |  |          #elif C_RELEASE
 | 
	
		
			
				|  |  | -            std::string libName = execPath.string() + "/LHQLog.dll";
 | 
	
		
			
				|  |  | +            std::string libName = execPath + "/LHQLog.dll";
 | 
	
		
			
				|  |  |          #endif
 | 
	
		
			
				|  |  |      #elif defined(Q_OS_LINUX)
 | 
	
		
			
				|  |  | -        std::string libName = execPath.string() + "/libLHQLog.so";
 | 
	
		
			
				|  |  | +        std::string libName = execPath + "/libLHQLog.so";
 | 
	
		
			
				|  |  |      #endif
 | 
	
		
			
				|  |  | -        auto sink_custom = std::make_shared<spdlog::sinks::LHLog_file_sink_mt>(&lhQLog, QString(libName.c_str()), ModuleName);
 | 
	
		
			
				|  |  | +        
 | 
	
		
			
				|  |  |          /* 给默认记录器用的sink */
 | 
	
		
			
				|  |  |          auto sink_default = std::make_shared<spdlog::sinks::stdout_color_sink_mt>();
 | 
	
		
			
				|  |  | +        /* 创建一个控制台sink */
 | 
	
		
			
				|  |  | +        auto sink_consolse = std::make_shared<spdlog::sinks::stdout_color_sink_mt>();
 | 
	
		
			
				|  |  | +        /* 创建写入文件的sink */
 | 
	
		
			
				|  |  | +        auto sink_LHLog = std::make_shared<spdlog::sinks::LHLog_file_sink_mt>(&lhQLog, QString(libName.c_str()), ModuleName);
 | 
	
		
			
				|  |  |   
 | 
	
		
			
				|  |  |          /* 修改输出格式 */
 | 
	
		
			
				|  |  | -        sink_consolse->set_pattern("%^[%Y-%m-%d %H:%M:%S] [%l] [%n] [%s %#] %v %$");
 | 
	
		
			
				|  |  | -        // sink_file->set_pattern("[%Y-%m-%d %H:%M:%S] [%^%n%$] [%^%l%$] %s %#: %v");
 | 
	
		
			
				|  |  | -        sink_custom->set_pattern("%v");
 | 
	
		
			
				|  |  | -        sink_default->set_pattern("%^[%Y-%m-%d %H:%M:%S] [%l] [%s %#] %v %$");
 | 
	
		
			
				|  |  | +        #if C_DEBUG
 | 
	
		
			
				|  |  | +            sink_consolse->set_pattern("%^[%Y-%m-%d %H:%M:%S:%e] [%l] [%n] [%s %#] %v %$");
 | 
	
		
			
				|  |  | +            // sink_file->set_pattern("[%Y-%m-%d %H:%M:%S:%e] [%^%n%$] [%^%l%$] %s %#: %v");
 | 
	
		
			
				|  |  | +            sink_LHLog->set_pattern("%v");
 | 
	
		
			
				|  |  | +            sink_default->set_pattern("%^[%Y-%m-%d %H:%M:%S:%e:%e] [%l] [%s %#] %v %$");
 | 
	
		
			
				|  |  | +        #elif C_RELEASE
 | 
	
		
			
				|  |  | +            sink_consolse->set_pattern("%^[%Y-%m-%d %H:%M:%S:%e] [%l] [%n] %v %$");
 | 
	
		
			
				|  |  | +            // sink_file->set_pattern("%^[%Y-%m-%d %H:%M:%S:%e] [%l] [%n]: %v %$");
 | 
	
		
			
				|  |  | +            sink_LHLog->set_pattern("%v");
 | 
	
		
			
				|  |  | +            sink_default->set_pattern("%^[%Y-%m-%d %H:%M:%S:%e] [%l] %v %$");
 | 
	
		
			
				|  |  | +        #endif
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          /* 日志输出方向,终端和文件 */
 | 
	
		
			
				|  |  |          std::vector<spdlog::sink_ptr> sinks;
 | 
	
		
			
				|  |  |          sinks.push_back(sink_consolse);
 | 
	
		
			
				|  |  |          // sinks.push_back(sink_file);
 | 
	
		
			
				|  |  | -        sinks.push_back(sink_custom);
 | 
	
		
			
				|  |  | +        sinks.push_back(sink_LHLog);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          /* 设置默认日志记录器,设置成自定义的sink */
 | 
	
		
			
				|  |  |          spdlog::default_logger()->sinks().clear();
 | 
	
		
			
				|  |  |          spdlog::default_logger()->sinks().push_back(sink_default);
 | 
	
		
			
				|  |  | -        spdlog::default_logger()->sinks().push_back(sink_custom);
 | 
	
		
			
				|  |  | -        // auto vecSinks =  spdlog::default_logger()->sinks();
 | 
	
		
			
				|  |  | -        // for(auto& sink : vecSinks)
 | 
	
		
			
				|  |  | -        // {
 | 
	
		
			
				|  |  | -        //     SPDLOG_INFO("sink name = {}", typeid(*sink).name());
 | 
	
		
			
				|  |  | -        // }
 | 
	
		
			
				|  |  | +        spdlog::default_logger()->sinks().push_back(sink_LHLog);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |          /* 创建一个标准输出 */
 | 
	
		
			
				|  |  |          auto logger_main = std::make_shared<spdlog::logger>("main",begin(sinks),end(sinks));
 | 
	
		
			
				|  |  |          /* 创建一个WebAPI logger */
 | 
	
		
			
				|  |  |          auto logger_WebAPI = std::make_shared<spdlog::logger>("WebAPI",begin(sinks),end(sinks));
 | 
	
		
			
				|  |  | -        /* 创建一个发射机通用 Logger */
 | 
	
		
			
				|  |  | -        auto logger_SuperBrain = std::make_shared<spdlog::logger>("SuperBrain",begin(sinks),end(sinks));
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          /* 注册到注册表 */
 | 
	
		
			
				|  |  |          spdlog::register_logger(logger_main);
 | 
	
		
			
				|  |  |          spdlog::register_logger(logger_WebAPI);
 | 
	
		
			
				|  |  | -        spdlog::register_logger(logger_SuperBrain);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          /* 设置spdlog输出级别,默认的估计不输出debug这个级别
 | 
	
		
			
				|  |  |           * 这是默认的设置,可以在外面单数设置输出方式
 | 
	
	
		
			
				|  | @@ -81,8 +86,8 @@ void initLog(QString ModuleName, CLHQLogApi& lhQLog)
 | 
	
		
			
				|  |  |  #elif defined(C_RELEASE)
 | 
	
		
			
				|  |  |          spdlog::set_level(spdlog::level::info);             /* 只输出info以上的输出 */
 | 
	
		
			
				|  |  |          spdlog::flush_on(spdlog::level::info);              /* 设置刷新等级 */
 | 
	
		
			
				|  |  | -        sink_consolse->set_level(spdlog::level::off);       /* 控制台不输出 */
 | 
	
		
			
				|  |  | -        sink_default->set_level(spdlog::level::off);        /* 默认sink也不输出 */
 | 
	
		
			
				|  |  | +        sink_consolse->set_level(spdlog::level::info);       /* 控制台不输出 */
 | 
	
		
			
				|  |  | +        sink_default->set_level(spdlog::level::info);        /* 默认sink也不输出 */
 | 
	
		
			
				|  |  |  #endif
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  //    SPDLOG_LOGGER_DEBUG(logger_main,"******* 有行号且debug也能输出 *******");
 |