#include "LogManager.h" #include //#include //#include #include LogManager::LogManager() { logger_set_level(hlog, LOG_LEVEL_SILENT); } void LogManager::init(const QString &filename) { // auto console_sink = std::make_shared(); // console_sink->set_level(spdlog::level::warn); // console_sink->set_pattern("[multi_sink_example] [%^%l%$] %v"); // _logger = QSharedPointer(new spdlog::logger("logger", {console_sink})); // qInstallMessageHandler(LogManager::messageHandler); } void LogManager::messageHandler(QtMsgType type, const QMessageLogContext &context, const QString &msg) { // 将 QString 转换为 UTF-8 编码的 std::string QByteArray byteArray = msg.toUtf8(); std::string utf8Msg(byteArray.constData(), byteArray.size()); // switch (type) { // //< 这里根据自己的需求可以将qt的 不同种类输出 重定向到 自己需要的日志输出接口中 // case QtDebugMsg: { // LogManager::instance()._logger->debug(utf8Msg); // } break; // case QtInfoMsg: { // LogManager::instance()._logger->info(utf8Msg); // } break; // case QtWarningMsg: { // LogManager::instance()._logger->warn(utf8Msg); // } break; // case QtCriticalMsg: { // LogManager::instance()._logger->critical(utf8Msg); // } break; // case QtFatalMsg: { // LogManager::instance()._logger->critical(utf8Msg); // } // } }