qt creator 将qInfo的输出日志写入日志文档,方便查看

第一步:定义一个静态函数:

复制代码
static void initLogHandler();

第二步:实现:

复制代码
void Server::initLogHandler()
{
    qInstallMessageHandler(customLogOutput);
}

customLogOutput :

复制代码
static void customLogOutput(QtMsgType type, const QMessageLogContext &ctx, const QString &msg)
{
    QFile logFile("server_log.txt");
    if (!logFile.open(QIODevice::Append | QIODevice::Text))
        return;

    QTextStream stream(&logFile);
    QString timeStr = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss");
    QString level;
    switch (type)
    {
    case QtDebugMsg:    level = "DEBUG"; break;
    case QtInfoMsg:     level = "INFO"; break;
    case QtWarningMsg:  level = "WARN"; break;
    case QtCriticalMsg: level = "ERROR"; break;
    default: level = "OTHER";
    }
    stream << QString("[%1][%2] %3\n").arg(timeStr, level, msg);
    logFile.close();
}

第三步,调用

复制代码
Server::initLogHandler(); // 初始化日志

第四部,查看结果:

在执行文件当前目录可以找到日志文件 server_log.txt

相关推荐
xcyxiner1 小时前
DicomViewer (添加模型类)3
qt
xcyxiner20 小时前
DicomViewer (目录调整) 2
qt
xcyxiner1 天前
dcmtk vtk vtk-dicom(gdcm) 编译(debug) v2
qt
LDR0063 天前
Type-C 快充全面升级!LDR6601 赋能个人护理便携电机,重塑剃须刀 / 理发器新体验
c语言·开发语言
雪碧聊技术3 天前
Tree.js是什么?一文讲透
开发语言·javascript·ecmascript
码云数智-园园3 天前
C++20 Modules 模块详解
java·开发语言·spring
swordbob3 天前
NIO的channel中什么是 fd(File Descriptor,文件描述符)
java·开发语言·nio
源分享3 天前
Java线程同步的多种实现方法(非常详细)
java·开发语言·jvm
Luminous.3 天前
C语言--day30
c语言·开发语言
何以解忧,唯有..3 天前
Go语言循环语句详解:for、range与循环控制
开发语言·算法·golang