12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- #include "loginit.h"
- #include "spdlog/spdlog.h"
- #include "spdlog/sinks/stdout_color_sinks.h"
- #include "spdlog/sinks/daily_file_sink.h"
- #include <QDebug>
- /* 初始化spdlog */
- void init_log()
- {
- try {
- /* 创建一个控制台sink */
- auto sink_consolse = std::make_shared<spdlog::sinks::stdout_color_sink_mt>();
- /* 创建一个文件sink,每天一个,00:00创建新的 */
- auto sink_file = std::make_shared<spdlog::sinks::daily_file_sink_mt>("log/log.txt",0,0);
- /* 修改输出格式 */
- sink_consolse->set_pattern("[%Y-%m-%d %H:%M:%S] [%^%n%$] [%^%l%$] %s %#: %v");
- sink_file->set_pattern("[%Y-%m-%d %H:%M:%S] [%^%n%$] [%^%l%$] %s %#: %v");
- std::vector<spdlog::sink_ptr> sinks;
- sinks.push_back(sink_consolse);
- sinks.push_back(sink_file);
- /* 创建一个标准输出 */
- auto logger_main = std::make_shared<spdlog::logger>("main",begin(sinks),end(sinks));
- /* 创建一个MQTT输出Logger */
- auto logger_MQTT = std::make_shared<spdlog::logger>("MQTT",begin(sinks),end(sinks));
- /* 创建一个UI输出Logger */
- auto logger_UI_IPSet = std::make_shared<spdlog::logger>("UI_IPSet",begin(sinks),end(sinks));
- /* 创建一个设备IO logger,包括网络和串口 */
- auto logger_DeviceIO = std::make_shared<spdlog::logger>("DeviceIO",begin(sinks),end(sinks));
- /* 创建一个设备UI logger */
- auto logger_UIPortSetting = std::make_shared<spdlog::logger>("PortSetting",begin(sinks),end(sinks));
- /* 创建一个设备UI logger */
- auto logger_UIKeyFunc = std::make_shared<spdlog::logger>("KeyFunc",begin(sinks),end(sinks));
- /* 创建一个“播出时段”的logger */
- auto logger_UIBoardCast = std::make_shared<spdlog::logger>("BroadCast",begin(sinks),end(sinks));
- /* 创建一个设备UI logger */
- auto logger_UIExecPlan = std::make_shared<spdlog::logger>("ExecPlan",begin(sinks),end(sinks));
- /* 创建一个设备Info logger */
- auto logger_Info = std::make_shared<spdlog::logger>("DevInfo",begin(sinks),end(sinks));
- /* 注册到注册表 */
- spdlog::register_logger(logger_main);
- spdlog::register_logger(logger_MQTT);
- spdlog::register_logger(logger_UI_IPSet);
- spdlog::register_logger(logger_DeviceIO);
- spdlog::register_logger(logger_UIBoardCast);
- spdlog::register_logger(logger_UIPortSetting);
- spdlog::register_logger(logger_UIKeyFunc);
- spdlog::register_logger(logger_UIExecPlan);
- spdlog::register_logger(logger_Info);
- /* 设置spdlog输出级别,默认的估计不输出debug这个级别 */
- #ifdef C_DEBUG
- spdlog::set_level(spdlog::level::trace);
- spdlog::flush_on(spdlog::level::trace);
- #elif C_RELEASE
- spdlog::set_level(spdlog::level::info);
- spdlog::flush_on(spdlog::level::info);
- #endif
- // SPDLOG_LOGGER_DEBUG(logger_main,"******* 有行号且debug也能输出 *******");
- } catch (const spdlog::spdlog_ex& ex) {
- qDebug() << "Log initialization failed: " << ex.what() ;
- }
- }
|